來自java文檔 InputStreamReader類


java.io
InputStreamReader

java.lang.Object

  java.io.Reader

      java.io.InputStreamReader

所有已實現的接口:

Closeable, Readable

直接已知子類:

FileReader


public class InputStreamReader

extends Reader

InputStreamReader 是字節流通向字符流的橋梁:它使用指定的 charset 讀取字節並將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平台默認的字符集。

每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入流讀取一個或多個字節。要啟用從字節到字符的有效轉換,可以提前從底層流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。

為了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如:

 BufferedReader in

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

 

從以下版本開始:

JDK1.1

另請參見:

BufferedReader, InputStream, Charset


字段摘要

 

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

lock

 

構造方法摘要

InputStreamReader(InputStream in)
創建一個使用默認字符集的 InputStreamReader

 

InputStreamReader(InputStream in, Charset cs)
創建使用給定字符集的 InputStreamReader

 

InputStreamReader(InputStream in, CharsetDecoder dec)
創建使用給定字符集解碼器的 InputStreamReader

 

InputStreamReader(InputStream in, String charsetName)
創建使用指定字符集的 InputStreamReader

 

 

方法摘要

void

close()
關閉該流並釋放與之關聯的所有資源。

String

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

int

read()
讀取單個字符。

int

read(char[] cbuf, int offset, int length)
將字符讀入數組中的某一部分。

boolean

ready()
判斷此流是否已經准備好用於讀取。

 

從類 java.io.Reader 繼承的方法

mark, markSupported, read, read, reset, skip

 

從類 java.lang.Object 繼承的方法

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

構造方法詳細信息

InputStreamReader

public InputStreamReader(InputStream in)

創建一個使用默認字符集的InputStreamReader

參數:

in - InputStream


InputStreamReader

public InputStreamReader(InputStream in,

                        String charsetName)

                 throws UnsupportedEncodingException

創建使用指定字符集的InputStreamReader

參數:

in - InputStream

charsetName - 受支持的 charset 的名稱

拋出:

UnsupportedEncodingException - 如果不支持指定的字符集


InputStreamReader

public InputStreamReader(InputStream in,

                        Charset cs)

創建使用給定字符集的InputStreamReader

參數:

in - InputStream

cs - 字符集

從以下版本開始:

1.4


InputStreamReader

public InputStreamReader(InputStream in,

                        CharsetDecoder dec)

創建使用給定字符集解碼器的InputStreamReader

參數:

in - InputStream

dec - 字符集解碼器

從以下版本開始:

1.4

方法詳細信息

getEncoding

public String getEncoding()

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

如果該編碼有歷史上用過的名稱,則返回該名稱;否則返回該編碼的規范化名稱。

如果使用 InputStreamReader(InputStream,String) 構造方法創建此實例,則返回的由此編碼生成的唯一名稱可能與傳遞給該構造方法的名稱不一樣。如果流已經關閉,則此方法將會返回 null

返回:

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

另請參見:

Charset


read

public int read()

         throws IOException

讀取單個字符。

覆蓋:

Reader 中的 read

返回:

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

拋出:

IOException - 如果發生 I/O 錯誤


read

public int read(char[] cbuf,

                intoffset,

                intlength)

         throws IOException

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

指定者:

Reader 中的 read

參數:

cbuf - 目標緩沖區

offset - 從其處開始存儲字符的偏移量

length - 要讀取的最大字符數

返回:

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

拋出:

IOException - 如果發生 I/O 錯誤


ready

public boolean ready()

             throws IOException

判斷此流是否已經准備好用於讀取。如果其輸入緩沖區不為空,或者可從底層字節流讀取字節,則 InputStreamReader 已做好被讀取准備。

覆蓋:

Reader 中的 ready

返回:

如果保證下一個 read() 不阻塞輸入,則返回 True,否則返回 false。注意,返回 false 並不保證阻塞下一次讀取。

拋出:

IOException - 如果發生 I/O 錯誤


close

public void close()

           throws IOException

從類 Reader復制的描述

關閉該流並釋放與之關聯的所有資源。在關閉該流后,再調用 read()ready()mark()reset() skip() 將拋出IOException。關閉以前關閉的流無效。

指定者:

接口 Closeable 中的 close

指定者:

Reader 中的 close

拋出:

IOException - 如果發生 I/O 錯誤

 


免責聲明!

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



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