Java中的inputstream inputstreamreader reader

时间:2011-04-23 16:59:49

标签: java io

inputsteam每次读取一个字节,inputstreamreader可以将字节转换为characher,然后每次读取一个字符,读者每次都读取一个字符,那么它们之间有什么区别?

3 个答案:

答案 0 :(得分:1)

InputStreamReader处理编码。字符并不总是适合byte(8位),字节值并不总是映射到同一个字符串,例如java char使用16位来编码一个可以表示的字符更多不同的角色。

根据InputStream的来源,字符可以用ASCII(1字节),UTF-8(1或更多字节),UTF-16(2或4字节),utf-32(4字节)或任何其他现有的编码。给定Charset权限,Reader可以将原始字节转换为相应的java字符。

答案 1 :(得分:0)

来自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

答案 2 :(得分:0)

InputStreamReader是抽象类Reader的一个实现,它从InputStream中读取字符,根据给定的字符集转换字节。还有其他的Reader实现,例如StringReader,它从字符串返回字符,不需要任何字符集转换。