读写txt文件

时间:2019-12-11 00:02:55

标签: java

我正在尝试进行包含患者信息的项目,并在用户需要时打印它们。但目前仅增加一个人。我想添加无限的信息,但我不知道该如何解决。

public static void saveChanges(ArrayList<Human> humans) throws IOException {
    File veritabani = new File("patients.txt");
    System.gc();
    RandomAccessFile raf = new RandomAccessFile(veritabani, "rw");
    raf.close();
    veritabani.delete();
    int ctrWhile = 0;
    for (int yazdir = 0; yazdir < humans.size(); yazdir++) {

        File f = new File("patients.txt");
        PrintWriter pw = new PrintWriter(new FileOutputStream(f, true));
        String tName=humans.get(yazdir).getNameAndSurname();
        int tID=humans.get(yazdir).getTC();
        int tAge=humans.get(yazdir).getAge();
        boolean tInsuance=humans.get(yazdir).isInsurance();
        String tComplain=humans.get(yazdir).getComplain();

        if (ctrWhile== 0) {
            pw.append(tName+"-"+tID+"-"+tAge+"-"+"-"+tInsuance+"-"+tComplain+"-");
            ctrWhile++;
        } else {
            pw.append("\n"+tName+"-"+tID+"-"+tAge+"-"+"-"+tInsuance+"-"+tComplain+"-");

        }
        pw.close();
    }
}

1 个答案:

答案 0 :(得分:-1)

每次循环时,您似乎都会创建一个新文件,对其进行写入,然后将其关闭。因此,每次循环时,您都将覆盖之前创建的文件。

在进入循环之前创建文件,并在完成循环后将其关闭;只在循环内写入它。