繁体   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