java bufferedReader,写出与读取不同的东西
-
07-07-2019 - |
题
我用Java中的BufferedReader和BufferedWriter解析了一个文本(CAL代码),不幸的是,我用红色和用outStream.write(line)编写的行;已经改变了,请看截图:
http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png ħ**号码://uploadz.eu/images/c03hgkrgrmit2ij2mug.png
如你所见,一些特殊的角色确实改变了线条,虽然我打算不改变它们。
据我所知,默认情况下,Bufferedwriter / Reader应该以unicode工作。
解决方案
好 BufferedWriter
和 BufferedReader
编码不可知 - 它们从不处理实际的编码,因为它们只是缓冲现有的读者和编写者。
现在 FileWriter
和 FileReader
使用默认的系统编码(urgh)。要解决这个问题,通常应该使用 InputStream
/ InputStreamReader
或 OutputStream
/ OutputStreamWriter
对(可能包含在 BufferedReader
/ BufferedWriter
),并明确指定编码。
你还没有说出你实际读到的内容 - 它是一个档案吗?你知道文件的编码吗?
其他提示
如果要将内容视为文本(String),或者当复制是您的目标时,您应该知道编码,或者将内容视为字节数组。
不隶属于 StackOverflow