共計(jì) 1135 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
InputStreamReader 是 Java 中用于讀取字節(jié)流并將其轉(zhuǎn)換為字符流的類。它可以將字節(jié)流轉(zhuǎn)換為字符流,并且還可以指定字符編碼。
使用 InputStreamReader 的步驟如下:
- 創(chuàng)建一個(gè) InputStream 對(duì)象,例如 FileInputStream 或 Socket.getInputStream()。
- 創(chuàng)建一個(gè) InputStreamReader 對(duì)象,將 InputStream 對(duì)象作為參數(shù)傳遞給它。可以選擇性地指定字符編碼,如果不指定,默認(rèn)使用平臺(tái)默認(rèn)的字符編碼。
- 使用 InputStreamReader 的 read() 方法讀取字符數(shù)據(jù)。read() 方法返回一個(gè)整數(shù)值,表示讀取的字符的 Unicode 值,如果已到達(dá)流末尾,則返回 -1。
- 使用 InputStreamReader 的 close() 方法關(guān)閉流。
以下是一個(gè)簡單的示例代碼,演示如何使用 InputStreamReader 讀取字符數(shù)據(jù):
import java.io.*;
public class InputStreamReaderExample {public static void main(String[] args) {try {// 創(chuàng)建一個(gè) InputStream 對(duì)象
FileInputStream fis = new FileInputStream("input.txt");
// 創(chuàng)建一個(gè) InputStreamReader 對(duì)象,并將 InputStream 對(duì)象作為參數(shù)傳遞給它
InputStreamReader isr = new InputStreamReader(fis);
// 讀取字符數(shù)據(jù)
int data;
while ((data = isr.read()) != -1) {// 處理讀取的字符數(shù)據(jù)
System.out.print((char) data);
}
// 關(guān)閉流
isr.close();} catch (IOException e) {e.printStackTrace();
}
}
}
在上面的示例中,首先創(chuàng)建一個(gè) FileInputStream 對(duì)象,然后將其傳遞給 InputStreamReader 的構(gòu)造方法,創(chuàng)建一個(gè) InputStreamReader 對(duì)象。然后使用 InputStreamReader 的 read() 方法讀取字符數(shù)據(jù),并使用 System.out.print() 方法打印讀取的字符數(shù)據(jù)。最后調(diào)用 InputStreamReader 的 close() 方法關(guān)閉流。
需要注意的是,使用 InputStreamReader 讀取字節(jié)流時(shí),它會(huì)將字節(jié)轉(zhuǎn)換為字符,因此如果字節(jié)流中的數(shù)據(jù)不是字符數(shù)據(jù)或者使用了不正確的字符編碼,可能會(huì)導(dǎo)致讀取到的字符數(shù)據(jù)不正確。因此,在使用 InputStreamReader 時(shí),應(yīng)該確保使用正確的字符編碼。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!