我有带字符串的文本文件,代码页是1250。我想将文本保存到RandomAccessFile中。当我从RandomAccessFile读取字节时,我得到了具有不同字符的字符串。一些解决方案...

最佳答案

如果使用的是writeUTF(),则应阅读其JavaDoc,以了解其始终写入modified UTF-8

如果要使用其他编码,则必须“手动”进行编码,并以某种方式存储byte[]的长度。

例如:

RandomAccessFile raf = ...;
String writeThis = ...;
byte[] cp1250Data = writeThis.getBytes("cp1250");
raf.writeInt(cp1250Data.length);
raf.write(cp1250Data);


阅读将类似地工作:

RandomAccessFile raf = ...;
int length = raf.readInt();
byte[] cp1250Data = new byte[length];
raf.readFully(cp1250Data);
String string = new String(cp1250Data, "cp1250");

10-06 11:15