Если вы используете writeUTF()
, вы должны прочитать его JavaDoc, чтобы узнать, что он всегда записывает измененный 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");