【发布时间】:2016-02-04 10:20:29
【问题描述】:
我读到 InputStream 用于基于字节的读取,它一次读取 1 个字节。 InputStreamReader 用于基于字符的读取,因此它一次读取一个字符,因此无需先将其转换为 int 然后读取它。
这里是使用 InputStream 读取。
InputStream input=new FileInputStream("D:/input.txt");
int c;
while((c=input.read())!=-1)
{
System.out.print((char)c);
}
这里是使用 InputStreamReader 读取
InputStream input=new FileInputStream("D:/input.txt");
reader=new InputStreamReader(input,"UTF-8");
int c;
while((c=reader.read())!=-1)
{
System.out.print((char)c);
}
InputStream 和 InputStreamReader 有什么区别?在这两种情况下,我都必须使用int,然后读取它,最后如果我想打印该数据,我必须使用“(char)c”进行转换。
那么使用InputStreamReader 有什么好处呢?
【问题讨论】:
-
不同之处在于
InputStream本身不会处理大于127 的输入值。尝试在您的测试输入中添加一些中文字符,它们将在InputStream版本中打印为两个字节.
标签: java