国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java? 教程(字節(jié)流)

Cristic / 2864人閱讀

字節(jié)流

程序使用字節(jié)流來(lái)執(zhí)行8位字節(jié)的輸入和輸出,所有的字節(jié)流類都是從InputStream和OutputStream派生出來(lái)的。

有許多字節(jié)流類,為了演示字節(jié)流的工作原理,我們將重點(diǎn)關(guān)注文件I/O字節(jié)流,F(xiàn)ileInputStream和FileOutputStream,其他類型的字節(jié)流以大致相同的方式使用,它們的不同之處主要在于它們的構(gòu)造方式。

使用字節(jié)流

我們將通過(guò)檢查名為CopyBytes的示例程序來(lái)探索FileInputStreamFileOutputStream,該程序使用字節(jié)流來(lái)復(fù)制xanadu.txt,一次一個(gè)字節(jié)。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyBytes {
    public static void main(String[] args) throws IOException {

        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("xanadu.txt");
            out = new FileOutputStream("outagain.txt");
            int c;

            while ((c = in.read()) != -1) {
                out.write(c);
            }
        } finally {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}

CopyBytes將大部分時(shí)間花在一個(gè)簡(jiǎn)單的循環(huán)中,該循環(huán)讀取輸入流和寫入輸出流,一次一個(gè)字節(jié),如下圖所示。

始終關(guān)閉流

在不再需要流時(shí)關(guān)閉流非常重要 — 非常重要的是CopyBytes使用finally塊來(lái)保證即使發(fā)生錯(cuò)誤也會(huì)關(guān)閉兩個(gè)流,這種做法有助于避免嚴(yán)重的資源泄漏。

一個(gè)可能的錯(cuò)誤是CopyBytes無(wú)法打開(kāi)一個(gè)或兩個(gè)文件,發(fā)生這種情況時(shí),對(duì)應(yīng)于該文件的流變量永遠(yuǎn)不會(huì)從其初始null值更改,這就是為什么CopyBytes在調(diào)用close之前確保每個(gè)流變量都包含一個(gè)對(duì)象引用。

何時(shí)不使用字節(jié)流

CopyBytes看起來(lái)像一個(gè)普通的程序,但它實(shí)際上代表了一種你應(yīng)該避免的低級(jí)別I/O,由于xanadu.txt包含字符數(shù)據(jù),因此最好的方法是使用字符流,如下一節(jié)中所述。還有用于更復(fù)雜數(shù)據(jù)類型的流,字節(jié)流應(yīng)僅用于最原始的I/O。

那么為什么要談?wù)撟止?jié)流呢?因?yàn)樗衅渌黝愋投际腔谧止?jié)流構(gòu)建的。

上一篇:I/O流 下一篇:字符流

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72970.html

相關(guān)文章

  • Java? 教程符流)

    字符流 Java平臺(tái)使用Unicode約定存儲(chǔ)字符值,字符流I/O自動(dòng)將此內(nèi)部格式與本地字符集進(jìn)行轉(zhuǎn)換,在Western語(yǔ)言環(huán)境中,本地字符集通常是ASCII的8位超集。 對(duì)于大多數(shù)應(yīng)用程序,具有字符流的I/O并不比具有字節(jié)流的I/O復(fù)雜,使用流類完成的輸入和輸出會(huì)自動(dòng)轉(zhuǎn)換為本地字符集和從本地字符集轉(zhuǎn)換,使用字符流代替字節(jié)流的程序會(huì)自動(dòng)適應(yīng)本地字符集并為國(guó)際化做了準(zhǔn)備 — 所有這些都無(wú)需程序員的額...

    mochixuan 評(píng)論0 收藏0
  • Java? 教程(數(shù)據(jù)流)

    數(shù)據(jù)流 數(shù)據(jù)流支持原始數(shù)據(jù)類型值(boolean、char、byte、short、int、long、float和double)以及String值的二進(jìn)制I/O,所有數(shù)據(jù)流都實(shí)現(xiàn)DataInput接口或DataOutput接口,本節(jié)重點(diǎn)介紹這些接口最廣泛使用的實(shí)現(xiàn),DataInputStream和DataOutputStream。 DataStreams示例通過(guò)寫出一組數(shù)據(jù)記錄,然后再次讀取它們來(lái)演...

    wujl596 評(píng)論0 收藏0
  • Java? 教程(命令行I/O)

    命令行I/O 程序通常從命令行運(yùn)行,并在命令行環(huán)境中與用戶交互,Java平臺(tái)以兩種方式支持這種交互:通過(guò)標(biāo)準(zhǔn)流和控制臺(tái)。 標(biāo)準(zhǔn)流 標(biāo)準(zhǔn)流是許多操作系統(tǒng)的一個(gè)特性,默認(rèn)情況下,它們從鍵盤讀取輸入并將輸出寫入顯示器,它們還支持文件和程序之間的I/O,但該功能由命令行解釋器控制,而不是程序。 Java平臺(tái)支持三種標(biāo)準(zhǔn)流:標(biāo)準(zhǔn)輸入,可通過(guò)System.in訪問(wèn);標(biāo)準(zhǔn)輸出,可通過(guò)System.out訪問(wèn);和...

    jeyhan 評(píng)論0 收藏0
  • 高薪程序員&面試題精講系列22之說(shuō)說(shuō)Java的IO流,常用哪些IO流?

    摘要:一面試題及剖析今日面試題今天壹哥帶各位復(fù)習(xí)一塊可能會(huì)令初學(xué)者比較頭疼的內(nèi)容,起碼當(dāng)時(shí)讓我很有些頭疼的內(nèi)容,那就是流。在這里壹哥會(huì)從兩部分展開(kāi)介紹流,即與流。除此之外盡量使用字節(jié)流。關(guān)閉此輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。 一. 面試題及剖析 1. 今日面試題 今天 壹哥 帶各位復(fù)習(xí)一塊可...

    fnngj 評(píng)論0 收藏0
  • Java? 教程(I/O流)

    I/O流 I/O流表示輸入源或輸出目標(biāo),流可以表示許多不同類型的源和目標(biāo),包括磁盤文件、設(shè)備、其他程序和內(nèi)存數(shù)組。 流支持許多不同類型的數(shù)據(jù),包括簡(jiǎn)單字節(jié)、原始數(shù)據(jù)類型、本地化字符和對(duì)象,有些流只是傳遞數(shù)據(jù),其他人以有用的方式操縱和轉(zhuǎn)換數(shù)據(jù)。 無(wú)論它們?nèi)绾卧趦?nèi)部工作,所有流都為使用它們的程序提供相同的簡(jiǎn)單模型:流是一系列數(shù)據(jù),程序使用輸入流從源讀取數(shù)據(jù),一次一個(gè)條目: showImg(https:...

    JerryWangSAP 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<