【问题标题】:java reader vs. streamjava阅读器与流
【发布时间】:2014-07-11 00:43:04
【问题描述】:

我正在阅读有关 Java I/O 的内容,发现了一些有趣的领域,例如流、阅读器等。

 InputStream input = new FileInputStream("input-file.txt");
 int data = input.read();
 while(data != -1){
   data = input.read();
 }

我可以通过使用 Readers 来做同样的事情,如下所示:

Reader reader = new FileReader("input-file.txt");
 int data = reader.read();
 while(data != -1){
     char dataChar = (char) data;
     data = reader.read();
 }

据我所知,Streams 用于从持续流动的数据中检索输入。

现在我对 Streams 和 reader 之间的区别感到困惑;如果我们用缓冲的阅读器包装流 - 它是如何换行的,因为流是一个连续流动的东西。

我找到了一些参考网站,例如this site.,但我无法理解其中的区别。

请有人帮我理解一下吗?

【问题讨论】:

标签: java inputstream bufferedreader filereader


【解决方案1】:

阅读器将读取具有特定字符编码(UTF-8、ISO 等)的文本数据

另一方面,流是二进制数据。

它们的工作方式相同,但父类不同。

简而言之,如果您必须读取二进制数据并将其保存在某处,请使用流。

如果您必须阅读特定编码的文本然后使用它,请使用阅读器。

希望这个答案。

【讨论】:

  • 所以基本上读者所做的是从流中读取并编码为字符。我对吗。如果我们用缓冲的阅读器包装流,它如何打破线,因为流是一个连续流动的东西?
  • 换行符由换行符 \n 读取。此功能在 readLine() 中。它会读取字符,直到找到 \n.. 是的,您在第一部分是对的。
  • 所以,如果我使用的是 bufferedReader ,但没有换行符。
  • 整个文本的意思是,直到那个时间的整个缓冲字符串?
猜你喜欢
  • 2012-05-03
  • 1970-01-01
  • 2023-03-28
  • 2016-01-23
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多