Запись файла в текст с помощью BufferedWriter(пишет что-то странное)Java
Я пытаюсь записать несколько целых чисел в текстовый файл с вводом только одного значения в каждой строке, поэтому я использовал BufferedWriter.
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write(board.Player1.money);
writer.newLine();
//Continues to do this for 4 players.
writer.newLine();
writer.write(board.Player1.position);
writer.newLine();
//Continues to do this for 4 players.
}
То, что я ожидал увидеть, было целыми числами в моем текстовом файле. И такие ценности, как board.Player1.money
являются правильными, потому что они работают для других частей кода. Таким образом, я ожидаю увидеть значение как 300, но я вижу следующие строки в текстовом файле.
Ǵ
ಀ
ಀ
ಀ
Это почему?
3 ответа
write(...)
метод BufferedWriter
перегружен
Например: есть метод void write(String arg)
который записывает данную строку в файл и есть void write(int arg)
который преобразует данное целое число в символ, а затем записывает символ в файл.
Чтобы решить вашу проблему, вам придется изменить
writer.write(board.Player1.position);
в
writer.write(Integer.toString(board.Player1.position));
Еще один способ сделать это:
writer.write(board.Player1.money+"");
write(int c) с целым числом ожидает символ. Попробуйте использовать write(String s, int off, int len) или какую-нибудь оболочку, например PrintWriter.