我正在写入一个 csv 文件,然后再更新它。但随着。我的更新代码,生成了一个新的相同文件。下面是我的代码,我想知道如何在不创建新文件的情况下进行更新。
public void updateFile(List<String> fileNames, String key, String value) throws IOException {
for (String file: fileNames) {
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8);
CSVReader reader = new CSVReader(inputStreamReader);
String[] header = reader.readNext();
int columnNum = Arrays.asList(header).indexOf(key);
List<String[]> data = reader.readAll();
for (String[] row : data) {
row[columnNum] = value;
}
reader.close();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(feedFile), StandardCharsets.UTF_8);
CSVWriter writer = new CSVWriter(outputStreamWriter);
writer.writeNext(header);
writer.writeAll(data);
writer.flush();
writer.close();
}
}
通过新文件,我的意思是,现在创建了 2 个具有不同时间戳的文件副本。