如何根据其中的值更新文本文件
Posted
技术标签:
【中文标题】如何根据其中的值更新文本文件【英文标题】: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(writer.print("");
来完成。然后遍历你的行并按照你已经在做的追加。
【参考方案1】:
很遗憾,您无法同时打开一个文件进行读取和写入。在打开文件进行写入之前,您需要阅读并关闭它。
可能的解决方案是:
将输出写入其他文件,完成后替换原始文件
将所有输出保存在内部变量中,然后在完成读取后关闭文件并重新打开以进行写入。
【讨论】:
以上是关于如何根据其中的值更新文本文件的主要内容,如果未能解决你的问题,请参考以下文章
如何检查一个文件的值是不是包含在另一个文本文件中? (perl 脚本)