InputStreamReader使用方法介紹


package com.chunzhi.Test03ReverseStream;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/*
    java.io.InputStreamReader extends Reader
    InputStreamReader:是字節流通向字符流的橋梁。它使用指定的charset讀取字節並將其解碼為字符。

    繼承父類的共性成員方法:
        int read():讀取單個字符並返回
        int read(char[] cbuf):一次讀取多個字符,將字符讀入數組
        void close():關閉該流並釋放與之相關聯的所有資源
    構造方法:
        InputStreamReader(InputStreamReader in):創建一個使用默認字符集的InputStreamReader
        InputStreamReader(InputStreamReader in, String charsetName):創建使用指定字符集的InputStreamReader
        參數:
            InputStream in:字符輸入流,用來讀取文件中保存的字節
            String charsetName:指定的編碼表名稱且不區分大小寫,不指定則使用默認(IDEA默認UTF-8編碼)
    使用步驟:
        1.創建InputStreamReader對象,構造方法中傳遞輸入流和指定的編碼表名稱
        2.使用InputStreamReader對象中的方法read讀取文件
        3.釋放資源
    注意事項:
        構造方法中給你指定的編碼表名稱要和文件的編碼表相同,否則會發生亂碼
 */
public class Test03InputStreamReader {
    public static void main(String[] args) throws IOException {
        read_utf_8();
        read_gbk();
    }

    private static void read_gbk() throws IOException {
        // 1.創建InputStreamReader對象,構造方法中傳遞輸入流和指定的編碼表名稱
        InputStreamReader isr = new InputStreamReader(new FileInputStream("Day10_IO\\gbk.txt"), "gbk");
        // 2.使用InputStreamReader對象中的方法read讀取文件
        int len = 0;
        while ((len = isr.read()) != -1) {
            System.out.print((char)len);
        }
        // 3.釋放資源
        isr.close();
    }

    private static void read_utf_8() throws IOException {
        // 1.創建InputStreamReader對象,構造方法中傳遞輸入流和指定的編碼表名稱
        InputStreamReader isr = new InputStreamReader(new FileInputStream("Day10_IO\\utf-8.txt"), "utf-8");
        // 2.使用InputStreamReader對象中的方法read讀取文件
        int len = 0;
        while ((len = isr.read()) != -1) {
            System.out.print((char)len);
        }
        // 3.釋放資源
        isr.close();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM