<ul id="ouw02"></ul>
  • 首頁 > 綜合 > 正文

    java字節(jié)流和字符流|熱資訊

    2023-04-08 18:20:05來源:騰訊云  

    Java中的I/O操作可以分為兩種類型:字節(jié)流和字符流。字節(jié)流用于處理二進(jìn)制數(shù)據(jù),而字符流用于處理文本數(shù)據(jù)。本文將詳細(xì)介紹Java中的字節(jié)流和字符流,并給出相應(yīng)的示例代碼。

    一、字節(jié)流

    Java中的字節(jié)流主要用于處理二進(jìn)制數(shù)據(jù),如圖像、音頻和視頻等。Java中的字節(jié)流主要分為InputStream和OutputStream兩種類型。


    【資料圖】

    InputStream

    InputStream是Java中所有輸入流的基類。InputStream中定義了許多方法用于讀取字節(jié)。以下是InputStream中一些常用的方法:

    int read(): 從輸入流中讀取一個字節(jié)的數(shù)據(jù)。如果已到達(dá)文件結(jié)尾,則返回-1。int read(byte[] b): 從輸入流中讀取最多b.length個字節(jié)的數(shù)據(jù),并將其存儲到緩沖區(qū)b中。返回實(shí)際讀取的字節(jié)數(shù)。int available(): 返回可以從輸入流中讀取的字節(jié)數(shù)。

    下面是一個從文件中讀取數(shù)據(jù)并將其顯示在控制臺上的示例:

    import java.io.*;public class InputStreamExample {    public static void main(String[] args) throws IOException {        InputStream in = new FileInputStream("test.txt");        int b;        while ((b = in.read()) != -1) {            System.out.print((char) b);        }        in.close();    }}

    在上述示例中,我們使用FileInputStream打開一個文件,并使用read()方法讀取文件中的每一個字節(jié),并將其顯示在控制臺上。

    OutputStream

    OutputStream是Java中所有輸出流的基類。OutputStream中定義了許多方法用于寫入字節(jié)。以下是OutputStream中一些常用的方法:

    void write(int b): 將指定的字節(jié)寫入輸出流中。void write(byte[] b): 將指定的字節(jié)數(shù)組中的數(shù)據(jù)寫入輸出流中。void flush(): 刷新輸出流并強(qiáng)制寫入所有緩沖的輸出字節(jié)。

    下面是一個將數(shù)據(jù)寫入文件的示例:

    javaCopy codeimport java.io.*;public class OutputStreamExample {    public static void main(String[] args) throws IOException {        OutputStream out = new FileOutputStream("test.txt");        String str = "Hello, world!";        byte[] b = str.getBytes();        out.write(b);        out.close();    }}

    在上述示例中,我們使用FileOutputStream打開一個文件,并使用write()方法將一個字符串轉(zhuǎn)換為字節(jié)數(shù)組,然后將其寫入文件中。

    二、字符流

    Java中的字符流主要用于處理文本數(shù)據(jù)。字符流可以直接處理Unicode字符,因此在處理中文等特殊字符時很方便。Java中的字符流主要分為Reader和Writer兩種類型。

    Reader

    Reader是Java中所有讀取字符流的基類。Reader中定義了許多方法用于讀取字符。以下是Reader中一些常用的方法:

    int read(): 從輸入流中讀取一個字符的數(shù)據(jù)。如果已到達(dá)文件結(jié)尾,則返回-1。int read(char[] c): 從輸入流中讀取最多c.length個字符的數(shù)據(jù),并將其存儲到緩沖區(qū)c中。返回實(shí)際讀取的字符數(shù)。

    下面是一個從文件中讀取數(shù)據(jù)并將其顯示在控制臺上的示例:

    import java.io.*;public class ReaderExample {    public static void main(String[] args) throws IOException {        Reader reader = new FileReader("test.txt");        int c;        while ((c = reader.read()) != -1) {            System.out.print((char) c);        }        reader.close();    }}

    在上述示例中,我們使用FileReader打開一個文件,并使用read()方法讀取文件中的每一個字符,并將其顯示在控制臺上。

    Writer

    Writer是Java中所有寫入字符流的基類。Writer中定義了許多方法用于寫入字符。以下是Writer中一些常用的方法:

    void write(int c): 將指定的字符寫入輸出流中。void write(char[] c): 將指定的字符數(shù)組中的數(shù)據(jù)寫入輸出流中。void flush(): 刷新輸出流并強(qiáng)制寫入所有緩沖的輸出字符。

    下面是一個將數(shù)據(jù)寫入文件的示例:

    import java.io.*;public class WriterExample {    public static void main(String[] args) throws IOException {        Writer writer = new FileWriter("test.txt");        String str = "Hello, world!";        writer.write(str);        writer.close();    }}

    在上述示例中,我們使用FileWriter打開一個文件,并使用write()方法將一個字符串寫入文件中。

    三、字節(jié)流和字符流的區(qū)別

    在Java中,字節(jié)流和字符流有以下區(qū)別:

    處理的數(shù)據(jù)類型不同

    字節(jié)流主要用于處理二進(jìn)制數(shù)據(jù),如圖像、音頻和視頻等。字符流主要用于處理文本數(shù)據(jù)。

    輸入/輸出方式不同

    字節(jié)流以字節(jié)為單位進(jìn)行讀取和寫入,而字符流以字符為單位進(jìn)行讀取和寫入。

    編碼方式不同

    字節(jié)流不關(guān)心數(shù)據(jù)的編碼方式,可以處理任何類型的數(shù)據(jù)。而字符流必須使用特定的字符編碼方式,如UTF-8或GBK,以正確地處理文本數(shù)據(jù)。

    標(biāo)簽:

    相關(guān)閱讀

    精彩推薦

    相關(guān)詞

    推薦閱讀

    亚洲中文字幕在线无码一区二区 | 亚洲AV无一区二区三区久久| 在线观看日本亚洲一区| 亚洲AV无码国产精品色午友在线 | 亚洲综合一区二区精品久久| 亚洲成a人片在线观看中文动漫| 亚洲精品~无码抽插| 亚洲色精品88色婷婷七月丁香| 中文字幕亚洲一区二区va在线| 久久精品国产精品亚洲| 亚洲成a人无码av波多野按摩| 国产精品亚洲а∨天堂2021| 高清在线亚洲精品国产二区| 欧洲亚洲综合一区二区三区| 国产精品亚洲二区在线| 国产精品亚洲专区一区| 亚洲国产精品视频| 亚洲精品天堂成人片?V在线播放| 亚洲性日韩精品国产一区二区| 久久精品国产亚洲Aⅴ香蕉| 国产国拍亚洲精品福利| 亚洲色成人中文字幕网站| 亚洲国产精品无码久久久秋霞2 | 久久亚洲成a人片| 亚洲国产精品久久久久| 亚洲色图视频在线观看| 亚洲制服丝袜在线播放| 亚洲日韩亚洲另类激情文学| 色欲aⅴ亚洲情无码AV| 亚洲精品国产福利一二区| 中文亚洲AV片在线观看不卡| 亚洲av午夜福利精品一区人妖| 久久精品亚洲精品国产色婷| 亚洲国产成人在线视频 | 亚洲AV无码一区二区二三区软件| 337p日本欧洲亚洲大胆精品555588| 亚洲国产成人精品无码区在线秒播| 亚洲欧洲无码一区二区三区| 亚洲成a人片在线观看日本麻豆| 亚洲无码在线播放| 亚洲黄色在线播放|