簡體   English   中英

Java中的inputstream inputstreamreader閱讀器

[英]inputstream inputstreamreader reader in Java

inputteam每次讀取一個字節,inputstreamreader可以將字節轉換為characher,然后每次讀取一個字符,reader每次也讀取一個字符,所以它們之間有什么區別?

InputStreamReader處理編碼。 一個字符並不總是適合一個byte (8位),並且字節值並不總是映射到相同的char,例如java char使用16位來編碼一個字符,從而可以表示更多數量的不同字符。

根據InputStream的來源,字符可以使用ASCII(1個字節),UTF-8(1個或多個字節),UTF-16(2個或4個字節),utf-32(4個字節)或任何其他現有字符進行編碼編碼。 給定正確的字符集 ,閱讀器可以將原始字節轉換為相應的Java字符。

從JavaDocs:

輸入流:此抽象類是表示字節輸入流的所有類的超類。

輸入流讀取器:從字節流到字符流的橋梁:它使用指定的字符集讀取字節並將其解碼為字符

流僅提供原始字節,閱讀器可以將原始字節轉換為不同編碼(ASCII / ISO / UTF)的字符。

http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html http://download.oracle.com/javase/6/docs/api/java/io/InputStreamReader.html http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html

InputStreamReader是抽象類Reader的實現,該類從InputStream讀取字符,並根據給定的字符集轉換字節。 Reader也有其他實現,例如StringReader,它從字符串返回字符,不需要任何字符集轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM