【发布时间】:2015-08-28 03:37:25
【问题描述】:
我正在检查输入输出部分,有太多的类和接口,我有点困惑。
正如文档所说,InputStream 是基于字节的流,而 Reader 是基于字符的流。但正如我正确理解的那样,它们之间的唯一区别是Reader 每次读取两个字节,而不是像InputStream 那样一次读取一个字节。
因此我不明白有什么区别:
使用 InputStream
byte[] bytes = new byte[2];
InputStream in = new FileInputStream("input.txt");
int bytesRead = in.read(bytes);
while(bytesRead != -1) {
doSomethingWithData(data);
bytesRead = inputstream.read(data);
}
使用 Reader
Reader reader = new InputStreamReader(new FileInputStream("input.txt"));
int data = reader.read();
while (data != -1) {
doSomethingWithData(data);
data = reader.read();
}
我真的对这些方面感到困惑。请详细说明。谢谢。
【问题讨论】:
-
根据字符集,一个字符可能是 1 或 2(甚至更多)字节。
标签: java inputstream streamreader java-io