По сути, я пытаюсь создать простое приложение базы данных с автоматически сгенерированными идентификаторами в каждой записи студента. Программа считывает предыдущий самый высокий идентификатор и добавляет к нему 1, чтобы создать следующий. Тем не менее, даже несмотря на то, что в текстовом документе есть числа, BufferedReader продолжает возвращать ноль при использовании readLine
. Я проверил, был ли мой синтаксический анализ int, но я понял, что это был буферный ридер, сохранив readline в переменной затем. распечатав его, где я получил нулевой результат. Я также попытался использовать чтение файла сканера, которое не работало, и я проверил все связанные классы и методы, чтобы попытаться выяснить это.
Этот код создает файл topsid и записывает 0, чтобы инициализировать его, что происходитчитать как ноль
if(MiscProcesses.firstStartup() == false) //method that checks if these files exist
{
File topsid = new File("topsid.txt");
FileWriter fw = new FileWriter(topsid);
fw.write("0");
fw.close();
}
Этот код отвечает за чтение файла и, следовательно, нахождение более высокого значения идентификатора
Student (String[] studata)
{
//checking highest SID
File topsid = new File("topsid.txt");
FileWriter fw = new FileWriter(topsid);
FileReader fr = new FileReader(topsid);
BufferedReader br = new BufferedReader(fr);
//checking high sid file and getting new sid
String test = br.readLine();
System.out.println(test+" <test"); <this ends up printing null
int sid;
sid = Integer.parseInt(test)+1;
System.out.println(sid);
fw.write(Integer.toString(sid));
this.id = sid;
...
br.close();
fr.close();
fw.close();
}
Когда я открываю файл topsid до запуска второго кода, это всехорошо и файл содержит ноль. Я ожидал бы, что bufferedreader будет читать «0», но он просто читает ноль, и когда я открываю файл после выполнения кода, данные внутри удаляются.