gpt4 book ai didi

java - 如何删除文件末尾的空行?

转载 作者:行者123 更新时间:2023-12-04 11:18:44 24 4
gpt4 key购买 nike

我有一个文本文件,用于存储项目信息。

10325,Test1,Producto del Hogar,12,17
10425,Test2,Videojuegos,11,17
12345,Test3,Producto del Hogar,56,17.0

我正在使用 opencsv 库修改所需项目的一列,我正在使用此代码:

public void updateCSV(String replace, int fila, int col) throws IOException {
if (replace != null) {
File archivoProductos = new File("productos.txt");
// Read existing file
CSVReader reader = new CSVReader(new FileReader(archivoProductos), ',', CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.NO_ESCAPE_CHARACTER);
List<String[]> csvBody = reader.readAll();
// get CSV row column and replace with by using row and column
csvBody.get(fila)[col] = replace;
reader.close();
// Write to CSV file which is open
CSVWriter writer = new CSVWriter(new FileWriter(archivoProductos), ',', CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.NO_ESCAPE_CHARACTER, System.getProperty("line.separator"));
writer.writeAll(csvBody);
writer.flush();
writer.close();

}
}

问题是当修改完成后,在文本文件的末尾添加了一个空行。

line1  10325,Test99,Producto del Hogar,12,17
line3 10425,Test2,Videojuegos,11,17
line2 12345,Test3,Producto del Hogar,56,17.0
line4

如何避免最后添加空行?

在写出 csvBody 之前添加了 println

[10325, Test99, Producto del Hogar, 12, 17]
[10425, Test2, Videojuegos, 11, 17]
[12345, Test3, Producto del Hogar, 56, 17.0]

到目前为止尝试过:

不添加空行,但我现有的 3 行现在只写了一行。

CSVWriter writer = new CSVWriter(new FileWriter(archivoProductos), ',', 
CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.NO_ESCAPE_CHARACTER,"");

最佳答案

也许您想插入一个测试,这样您就不会编写最终...

System.getProperty("line.separator")

...如果没有更多数据。或者,这可能会执行得更快,只需在写入/保存文件之前修剪最后一个分隔符。

关于java - 如何删除文件末尾的空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40579601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com