鴻蒙OS InputStreamReader

2022-10-20 14:31 更新

InputStreamReader

java.lang.Object

|---java.io.Reader

|---|---java.io.InputStreamReader

public class InputStreamReader
extends Reader

InputStreamReader 是從字節(jié)流到字符流的橋梁:它讀取字節(jié)并使用指定的字符集將它們解碼為字符。 它使用的字符集可以由名稱指定,也可以顯式給出,或者可以接受平臺的默認字符集。

InputStreamReader 的 read() 方法之一的每次調用都可能導致從底層字節(jié)輸入流中讀取一個或多個字節(jié)。 為了實現字節(jié)到字符的有效轉換,可以從底層流中預先讀取比滿足當前讀取操作所需的更多的字節(jié)。

為了獲得最高效率,請考慮將 InputStreamReader 包裝在 BufferedReader 中。 例如:

 BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

Since:

JDK1.1

字段摘要

從類 java.io.Reader 繼承的字段
lock

構造函數摘要

構造函數 描述
InputStreamReader(InputStream in) 創(chuàng)建一個使用默認字符集的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 創(chuàng)建一個使用命名字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs) 創(chuàng)建一個使用給定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec) 創(chuàng)建一個使用給定字符集解碼器的 InputStreamReader。

方法總結

修飾符和類型 方法 描述
void close() 關閉流并釋放與其關聯的任何系統資源。
String getEncoding() 返回此流使用的字符編碼的名稱。
int read() 讀取單個字符。
int read(char[] cbuf, int offset, int length) 將字符讀入數組的一部分。
boolean ready() 告訴這個流是否準備好被讀取。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
從類 java.io.Reader 繼承的方法
mark, markSupported, read, read, reset, skip

構造函數詳細信息

InputStreamReader

public InputStreamReader(InputStream in)

創(chuàng)建一個使用默認字符集的 InputStreamReader。

參數:

參數名稱 參數描述
in 輸入流

InputStreamReader

public InputStreamReader(InputStream in, String charsetName) throws UnsupportedEncodingException

創(chuàng)建一個使用命名字符集的 InputStreamReader。

參數:

參數名稱 參數描述
in 輸入流
charsetName 支持的字符集的名稱

Throws:

Throw名稱 Throw描述
UnsupportedEncodingException 如果不支持命名字符集

InputStreamReader

public InputStreamReader(InputStream in, Charset cs)

創(chuàng)建一個使用給定字符集的 InputStreamReader。

參數:

參數名稱 參數描述
in 輸入流
cs 一個字符集

Since:

1.4

InputStreamReader

public InputStreamReader(InputStream in, CharsetDecoder dec)

創(chuàng)建一個使用給定字符集解碼器的 InputStreamReader。

參數:

參數名稱 參數描述
in 輸入流
dec 一個字符集解碼器

Since:

1.4

方法詳情

getEncoding

public String getEncoding()

返回此流使用的字符編碼的名稱。

如果編碼具有歷史名稱,則返回該名稱; 否則返回編碼的規(guī)范名稱。

如果此實例是使用 InputStreamReader(java.io.InputStream,java.lang.String) 構造函數創(chuàng)建的,則返回的名稱(對于編碼而言是唯一的)可能與傳遞給構造函數的名稱不同。 如果流已關閉,此方法將返回 null。

返回:

此編碼的歷史名稱,如果流已關閉,則為 null

read

public int read() throws IOException

讀取單個字符。

覆蓋:

read in class Reader

返回:

讀取的字符,如果已到達流的末尾,則為 -1

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

read

public int read(char[] cbuf, int offset, int length) throws IOException

將字符讀入數組的一部分。

指定者:

read in class Reader

參數:

參數名稱 參數描述
cbuf 目標緩沖區(qū)
offset 開始存儲字符的偏移量
length 要讀取的最大字符數

返回:

讀取的字符數,如果已到達流的末尾,則為 -1

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

ready

public boolean ready() throws IOException

告訴這個流是否準備好被讀取。 如果 InputStreamReader 的輸入緩沖區(qū)不為空,或者可以從底層字節(jié)流中讀取字節(jié),則 InputStreamReader 已準備就緒。

覆蓋:

ready in class Reader

返回:

如果保證下一個 read() 不會阻塞輸入,則為 true,否則為 false。 請注意,返回 false 并不能保證下一次讀取將阻塞。

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤

close

public void close() throws IOException

從類復制的描述:Reader

關閉流并釋放與其關聯的任何系統資源。 關閉流后,進一步的 read()、ready()、mark()、reset() 或 skip() 調用將引發(fā) IOException。 關閉以前關閉的流沒有效果。

指定者:

在接口 AutoCloseable 中關閉

指定者:

在接口Closeable中關閉

指定者:

close in class Reader

Throws:

Throw名稱 Throw描述
IOException 如果發(fā)生 I/O 錯誤
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號