我有带字符串的文本文件,代码页是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");