我正在阅读有关Java I / O的内容,并发现了一些有趣的领域,如流,读者等。
InputStream input = new FileInputStream("input-file.txt");
int data = input.read();
while(data != -1){
data = input.read();
}
我可以通过如下使用读者来做同样的事情:
Reader reader = new FileReader("input-file.txt");
int data = reader.read();
while(data != -1){
char dataChar = (char) data;
data = reader.read();
}
据我所知,Streams用于从连续流动的数据中检索输入。
现在我对Streams&的区别感到困惑。读者;如果我们用缓冲的阅读器包裹流 - 它是如何打破线条的,因为流是一个不断流动的东西。
我找到了一些参考网站,如this site.但我无法理解其中的差异。
请有人帮我理解一下吗?
答案 0 :(得分:2)
读者应阅读具有特定字符编码(UTF-8,ISO等)的文本数据
而另一方面,流是二进制数据。他们的工作方式相同,但父类不同。
简而言之,如果您必须读取二进制数据并将其保存在某处,请使用流。
如果您必须阅读特定编码的文本然后使用它,请使用读者。
希望这个答案。