Во-первых, я использую этот код для записи двух строк в файл:
String lineSeparator = System.getProperty("line.separator", "\n");
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test1.txt";
RandomAccessFile randomAccessFile = new RandomAccessFile(filePath, "rw");
randomAccessFile.writeUTF("aaaaaaaaaaaaaaaaaaaaa");
randomAccessFile.write(lineSeparator.getBytes());
randomAccessFile.writeUTF("bbbbbbbbbbbbbbbbbbbb");
randomAccessFile.write(lineSeparator.getBytes());
randomAccessFile.close();
После записи файла я прочитал файл:
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
int i = 0;
String line;
while ((line = randomAccessFile.readLine()) != null) {
Log.i("log", (i++)+" : "+line);
}
randomAccessFile.close();
Но произошли странные вещи, каждая строка начинается с ��
, я не знаю, что это такое.
Полные журналы:
07-13 07:21:41.027 1138-1138/? I/log: 0 : ��aaaaaaaaaaaaaaaaaaaaa
07-13 07:21:41.027 1138-1138/? I/log: 1 : ��bbbbbbbbbbbbbbbbbbbb
Что за искаженная строка, это разделитель строк? И, как я могу правильно прочитать файл?
Я попытался использовать writeChars
вместо writeUTF
, но в журнале появилось больше искаженных символов:
07-13 08:14:26.352 16821-16821/? I/log: 0 : ��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a��a
07-13 08:14:26.352 16821-16821/? I/log: 1 : ��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b��b