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

时间:2015-05-22 18:01:52

标签: java readfile writefile

使用此代码,我想读取一个文本文件,将所有元素放入arraylist并用arraylist contains替换该文件。但是这段代码没有写入文件,我不知道为什么......

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
        }
    }

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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