Я довольно новичок в OOP и Java программировании, поэтому, пожалуйста, прости меня . Я написал небольшой класс, в котором я пытаюсь записать строку в файл, используя класс BufferedReader . Все работает просто отлично, но файл "пустой" , я имею в виду, что внутри я ничего не вижу. Но, безусловно, данные сохраняются, потому что, когда я закрываю Eclipse, снова открываю его и запускаю класс драйвера для выполнения моих тестов, данные восстанавливаются из файла. Кстати, я использую механизм "try with ressources" , поэтому мой файл "закрывается" автоматически. Кто-то уже сталкивался с этой проблемой? Моя Eclipse версия "2018-12"
Ниже представлен небольшой класс с методом writeToFile, в котором я использую класс BufferedReader. .
package parlons.code.tipcalulator.utilities;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileManagement {
private File tipFile;
public FileManagement(String tipsFileName) {
this.tipFile = new File("/"+tipsFileName);
}
public String readFromFile() {
String tip = null;
try(BufferedReader bufferedReader = new BufferedReader(new FileReader(this.tipFile))) {
tip = bufferedReader.readLine();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tip;
}
public void writeToFile(String decimal) {
try(BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tipFile,true))){
bufferedWriter.write(decimal);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ниже вы найдете класс драйвера для тестирования.
package parlons.code.tipcalulator.utilities;
public class UtilitiesTestDriver {
public static void main(String[] args) {
String decimal = "108";
FileManagement fileManagement = new FileManagement("tipFile.txt");
fileManagement.writeToFile(decimal);
System.out.println(fileManagement.readFromFile());
}
}