【问题标题】:Don't write text into my txt file不要将文本写入我的 txt 文件
【发布时间】:2015-05-22 18:01:51
【问题描述】:

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

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

【问题讨论】:

  • 它会抛出任何错误吗?您是否尝试过使用调试器或打印语句单步执行您的代码?
  • 不...我没有任何错误..
  • 不需要冗余的 java 标签。这段代码需要特定版本怎么办?
  • 尝试关闭/刷新您的流/作者。
  • itemfile 是一个数组列表,我将所有文件放在其中,然后我尝试将包含在同一个文本文件中

标签: java readfile writefile


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-08
      • 2016-08-17
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      相关资源
      最近更新 更多