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