不要将文本写入我的 txt 文件

Don't write text into my txt file

我想用这段代码读取一个文本文件,将所有元素放入一个数组列表中,然后用数组列表包含的文件替换该文件。但是这段代码没有写入文件,我不知道为什么...

public void delete(String lineToDelete, String nameFile) throws IOException {
        file = new File(nameFile);
        fw = new FileWriter(file,false);

        read = new Scanner(file);
        while (read.hasNext()) {
            itemFile.add(read.nextLine());
        }
        for (int i = 0; i < itemFile.size(); i++) {
            if (itemFile.get(i).equals(lineToDelete)) {
                itemFile.remove(i);
                break;
            }
        }
        for (String itemFile1 : itemFile) {
            fw.write(itemFile1);
            fw.write(System.lineSeparator()); //new line
        }
    }

我认为有错字。在最后一个 for 循环中,当您的变量名称为 fw 时,您有 fwp.write(...) 。这可能是问题所在。

您需要在打开 FileWriter 之前关闭扫描仪,以避免文件冲突。

    ...
    read.close();
    FileWriter fw = new FileWriter(file,false);
    for (String itemFile1 : itemFile) {
        fw.write(itemFile1);
        fw.write(System.lineSeparator()); //new line
    }
    fw.close();