【问题标题】:How to update a text file based on values within it如何根据其中的值更新文本文件
【发布时间】:2014-06-07 02:31:12
【问题描述】:

我想根据该行的特定值(id)编辑 csv 文件的某些值(行值)。我能够读取和写入(附加)其中的值,但无法弄清楚如何编辑和删除它们。

这是我正在执行的读取文件和附加值的一小段代码:

FileWriter writer = new FileWriter("file.csv", true);
try {
    FileInputStream fstream = new FileInputStream("file.csv");
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
    String strLine;              
    while ((strLine = br.readLine()) != null) {
        String[] fields = strLine.split(",");
        if (fields[1].equals("value") {
            fields[1] = "different value";
        }
        writer.append(fields);
    }
    catch(...)
}

但我不知道如何将值写回文件中的同一位置。

【问题讨论】:

  • 要编辑和删除,您需要读取整个文件(以某种格式存储,即对象的 ArrayList),清除 .csv 文件,并用修改后的值将其重写。
  • 清除是指删除吗?或以任何其他方式。
  • 删除它会更容易,您可以通过创建文件的实例来简单地做到这一点, (File file = new file(); 然后调用 file.delete
  • 您可以使用writer.print(""); 来完成。然后遍历你的行并按照你已经在做的追加。

标签: java file csv flat-file


【解决方案1】:

很遗憾,您无法同时打开一个文件进行读取和写入。在打开文件进行写入之前,您需要阅读并关闭它。

可能的解决方案是:

  • 将输出写入其他文件,完成后替换原始文件

  • 将所有输出保存在内部变量中,然后在完成读取后关闭文件并重新打开以进行写入。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多