我有一个包含ISO-8859-1字符(åäö)的文件的RandomAccessFile读数。但是当在文件上使用seek()和readLine()时,我会得到aagÃ¥rd而不是aagård。任何线索为什么会这样?
ReadLine不支持UTF格式,如javadoc:https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html#readLine()
从此文件中读取下一行文本。此方法从当前文件指针开始连续读取文件中的字节,直到它到达行终止符或文件末尾。通过取字符的低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符。因此,此方法不支持完整的Unicode字符集。
请尝试使用ReadUTF()
:
从此文件中读取字符串。该字符串已使用修改的UTF-8格式进行编码。