[英]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.