Java之InputStreamReader類的實(shí)現(xiàn)

小云
107
2023-08-11 14:47:01

InputStreamReader是Java中用于讀取字符流的類,它是InputStream和Reader的橋梁,將字節(jié)流轉(zhuǎn)換為字符流。下面是InputStreamReader類的簡(jiǎn)單實(shí)現(xiàn):

import java.io.*;
public class InputStreamReaderDemo {
public static void main(String[] args) {
try {
// 創(chuàng)建一個(gè)字節(jié)流
FileInputStream fis = new FileInputStream("input.txt");
// 創(chuàng)建一個(gè)字符流,并將字節(jié)流轉(zhuǎn)換為字符流
InputStreamReader isr = new InputStreamReader(fis);
// 創(chuàng)建一個(gè)緩沖字符流
BufferedReader br = new BufferedReader(isr);
// 讀取文件內(nèi)容并打印
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
// 關(guān)閉流
br.close();
isr.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

在上面的代碼中,首先創(chuàng)建了一個(gè)字節(jié)流FileInputStream,然后將它傳遞給InputStreamReader構(gòu)造方法,創(chuàng)建一個(gè)字符流InputStreamReader。

接下來(lái),創(chuàng)建了一個(gè)緩沖字符流BufferedReader,將InputStreamReader作為參數(shù)傳遞給它的構(gòu)造方法。

最后,通過(guò)調(diào)用BufferedReader的readLine()方法,逐行讀取文件內(nèi)容并打印。

最后,需要注意的是,在使用完InputStreamReader和FileInputStream之后,需要調(diào)用對(duì)應(yīng)的close()方法來(lái)關(guān)閉流,釋放資源。

0