我做了一个小程序来训练词汇。一开始它会从文本文件中读取所有语音。我现在的问题是,当程序关闭时,不会保存新的学习级别。我可以覆盖整个txt,但是只有每三行都会更改,所以我问自己是否仅可以更改每三行。
代码仅显示我如何读取文件
try {
FileInputStream fstream = new FileInputStream("src/trainer/textfile.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
neu.add(strLine, br.readLine(), Integer.parseInt(br.readLine()));
}
in.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
这是我添加行的方式,但这一切都是已知的。
PrintWriter writer;
try {
System.out.println("hi");
writer = new PrintWriter(new FileWriter("src/trainer/textfile.txt", true));
for (int i = 0; i < neu.getKarten().length; i++) {
writer.write("\n" + neu.getKarten()[i].getDeutsch() + "\n");
writer.write(neu.getKarten()[i].getEnglisch() + "\n");
writer.write(Integer.toString(neu.getKarten()[i].getLernlevel()) + "");
}
writer.close();
} catch (FileNotFoundException | UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
txt文件如下所示:
鲍姆
树
0
maus
鼠标
2