如何在Java中编辑文本文件中的每x行?

时间:2019-04-28 13:59:39

标签: java eclipse text-files fileinputstream

我做了一个小程序来训练词汇。一开始它会从文本文件中读取所有语音。我现在的问题是,当程序关闭时,不会保存新的学习级别。我可以覆盖整个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

0 个答案:

没有答案