Записать число в файл и считать его обратно
Ни как не могу выполнить простую операцию. Есть текстовый файл с числом integer, я пытаюсь это число считать, обработать и вернуть его обратно в этот же файл. Но почему то не получается. Подскажите пожалуйста, где моя ошибка?
text до выполнения:
123456
package org.example;
import java.io.*;
import java.nio.CharBuffer;
public class Main {
static int number = 0;
static int numbernext = 0;
Integer send = 0;
public static void main(String[] args) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter("src/text.txt"));
writer.write(number);
writer.close();
System.out.println(number);
System.out.println("--------------------");
BufferedReader reader = new BufferedReader(new FileReader("src/text.txt"));
reader.read(CharBuffer.allocate(numbernext));
reader.close();
System.out.println(numbernext);
}
}
text file после выполнения:
консоль:
Ответы (1 шт):
Автор решения: Михаил Ребров
→ Ссылка
При записи литерал, лучше явго привести к строке
writer.write(Integer.toString(number));
В противном случае Writer сочтёт, что Вы передали ему char и запишет в файл соответствующий данному числу симвлол. Например, если число будет 123, то он запишет в файл символ "{"
Считывать легче построчно
reader.readLine()
А потом строку распарсить или другим способом привести к целочисленному виду
numbernext = Integer.parseInt(reader.readLine());
В итоге:
import java.io.*;
public class Main {
static int number = 123123;
static int numbernext = 0;
Integer send = 0;
public static void main(String[] args) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter("src/text.txt"));
writer.write(Integer.toString(number));
writer.close();
System.out.println(number);
System.out.println("--------------------");
BufferedReader reader = new BufferedReader(new FileReader("src/text.txt"));
numbernext = Integer.parseInt(reader.readLine());
reader.close();
System.out.println(numbernext);
}
}
output:
123123
--------------------
123123


