【JAVA IO】_位元組-字元轉換流筆記

來源:互聯網
上載者:User

【JAVA IO】_位元組-字元轉換流筆記

本章目標:
掌握OutputStreamWriter和InputStreamReader類的作用

OutputStreamWriter和IntputStreamReader

正式因為有OutputStreamWriter和InputStreamReader才使InputStream、OutputStream與Reader、Writer建立關係。
所以本章要比上一章更重要。

在整個IO包中,實際上就是位元組流和字元流,但是除了這兩個流之外,還存在了一組位元組流-字元流的轉換類。

OutputStreamWriter:是Writer的子類,將輸出的字元流變為位元組流,即:將一個字元流的輸出對象變為位元組流的輸出對象。

InputStreamReader: 是Reader的子類,將輸入的位元組流變為字元流,即:將一個位元組流的輸入對象變為字元流的輸入對象。

一般在操作輸入輸出內容的時候就需要使用位元組或字元流,但是有些時候需要將字元流變為位元組流的形式,或者將位元組變為字元流的形式,所以,就需要另外一群組轉換流的操作類。

轉換步驟:
如果以檔案操作為例,則在記憶體中的字元資料需要通過OutputStreamWriter變為位元組流才能儲存在檔案之中,讀取的時候需要將讀入的位元組流通過InputStreamReader變為字元流。

在OutputStreamWriter類中需要一個位元組流的對象:
public OutputStreamWriter(OutputStream out)
例如:將位元組的檔案輸出資料流,以字元的形式輸出。

import java.io.*;public class OutputStreamWriterdemo01{    public static void main(String args[])throws Exception{        File f = new File("d:"+File.separator+"test.txt");        Writer out = null;        out = new OutputStreamWriter(new FileOutputStream(f));        out.write("hello world!!!");        out.close();    }}

讀的時候,也可以使用字元流的形式讀取位元組流的檔案。

import java.io.*;public class InputStreamReaderDemo01{    public static void main(String args[])throws Exception{        File f = new File("d:"+File.separator+"test.txt");        Reader reader = null;        reader = new InputStreamReader(new FileInputStream(f));        char c[] = new char[1024];        int len = reader.read(c);        System.out.println(new String(c,0,len));    }}

但是,以上只是以檔案操作為例,因為OutputStreamWriter 中接收的類型是OutputStream,只要是位元組輸出資料流都可以使用字元的形式操作,而InputStreamReader()中接收的類型是InputStream,只要是位元組的輸入資料流都可以使用字元的輸入資料流操作。

位元組流字元流的類別關係整理:
java.lang.Object
    java.io.Writer
        java.io.OutputStreamWriter
            java.io.FileWriter

java.lang.Object
    java.io.Reader
        java.io.InputStreamReader
            java.io.FileReader

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.