我有一个文件有多行。
对于每一行,格式为
"String A" "String B" "binary data"
我想要做的是在每行前面添加“String C”
"String C" "String A" "String B" "binary data"
现在我正在使用BufferedReader.readline(),看起来这个方法在读取二进制数据时有问题。
任何人都可以就解决这个问题给我一些建议吗?
答案 0 :(得分:3)
如果您的文件中包含二进制数据,则不应使用readLine()方法,该方法假定您的行以“\ r”,“\ n”或“\ r \ n”结尾。 “二进制数据”可能偶然包含该序列并弄乱readLine()。
一般来说,不应将二进制数据与文本数据混合。
答案 1 :(得分:2)
我认为你必须自己阅读二进制缓冲区并解释你的格式,即找到文本提取字节的位置并将它们转换为字符串。
读者无法读取二进制数据。没办法。
答案 2 :(得分:2)
比“二进制数据可能包含换行符”更严重的问题显然是二进制数据甚至可能根本不包含有效的unicode代码点!因此,在任何情况下你都不应该将二进制数据解释为文本,但另一种方式就好了。
这意味着:将数据读入bytebuffer并自行解释。