【问题标题】:Non-buffering StreamReader?非缓冲 StreamReader?
【发布时间】:2013-02-09 10:14:10
【问题描述】:

在某处是否有非缓冲流读取器实现?

我通过以下方式创建了我的流

FileInputStream inputStream = new FileInputStream(inputFilename);
CountingInputStream countingStream = new CountingInputStream(inputStream);
InputStreamReader streamReader = new InputStreamReader(countingStream, Charset.forName("utf8"));

countingStream从一开始就表示位置8192。这意味着尽管我正在逐个字符地读取,但阅读器读取了 8192 个字节。

有没有没有这个功能的阅读器?

CountingInputStream 来自 Apache Commons IO API。

【问题讨论】:

  • 如果没有 'CountingInputStream',你会看到同样的东西吗?
  • 没有CountingInputStream 根本无法查看位置。这是从这里commons.apache.org/io/apidocs/org/apache/commons/io/input/…
  • 你为什么想要一个非缓冲阅读器?
  • 问题标题应该是非缓冲计数流阅读器
  • @jtahlborn 因为我有BufferedReader 已经可以使用,如果我愿意的话。也不需要在普通阅读器内部进行缓冲。

标签: java stream inputstream streamreader


【解决方案1】:

我不确定您为什么想要一个(似乎效率很低),但您可以使用CharsetDecoder 自己实现一个。

【讨论】:

  • 当我决定实现自己的微型 Web 服务器时,我需要一个。我必须读取字符,直到将标头与 HTTP 请求的正文分开的空行,然后直接从底层输入流中将正文作为字节读取。由于 InputStreamReader 的缓冲,我确实不得不自己实现它。
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2010-11-29
  • 2014-01-30
  • 2012-01-14
  • 2012-10-08
  • 2010-11-08
相关资源
最近更新 更多