【发布时间】:2011-09-25 17:49:42
【问题描述】:
我正在尝试从二进制流中读取数据,其中的一部分应该被解析为 UTF-8。
直接将InputStream 用于二进制数据并在其顶部使用InputStreamReader 用于UTF-8 文本不起作用,因为即使被告知阅读器也会提前阅读并弄乱后续的二进制数据最多读取n 个字符。
我认识到这个问题与Read from InputStream in multiple formats 非常相似,但是那里提出的解决方案是针对 HTTP 流的,这对我没有帮助。
我想只是将所有内容都读取为二进制数据,然后将相关部分转换为文本。但我只有字符数据的长度信息,而不是字节。因此,我需要从流中读取字符的东西来了解编码。
有没有办法告诉 InputStreamReader 不要提前读取超过读取给定字符数所需的内容?或者有没有一种阅读器可以同时支持二进制数据和带有编码的文本,并且可以在这些模式之间动态切换?
【问题讨论】:
标签: java inputstream inputstreamreader