gpt4 book ai didi

java - OpenCSV CSVWriter 在文件末尾添加空行

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:42 28 4
gpt4 key购买 nike

我使用以下代码从管道分隔的 CSV 中删除引号:

public Path truncateQuoteMarks(Path path) throws Exception {

String pipeDelimitedFilename = path.toAbsolutePath().toString();

Path convertedFilename = Paths.get(pipeDelimitedFilename.substring(0, pipeDelimitedFilename.lastIndexOf(".csv")) + "_no_quotes.csv");

CSVReader reader = new CSVReader(new InputStreamReader(new BufferedInputStream(new FileInputStream(path.toAbsolutePath().toString()))), '|', CSVParser.DEFAULT_QUOTE_CHARACTER);

reader.skip(1);

FileWriter fw = new FileWriter(convertedFilename.toAbsolutePath().toString());
fw.write(System.lineSeparator());
CSVWriter writer = new CSVWriter(fw, '|', CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.RFC4180_LINE_END);

String[] currentLine;
while((currentLine = reader.readNext()) != null) {
writer.writeNext(currentLine);
}

writer.flush();
writer.close();
reader.close();

return convertedFilename;
}

但是,它会在 csv 末尾留下一个空行(见图)。 enter image description here

通过谷歌搜索,我发现这个问题至少被问过一次 here以及在另一个网站上。另一个网站声称这是 OpenCSV 的工作方式并建议编辑文件大小,但必须有其他方法。

有没有办法从文件末尾删除这个空行? SQL Server BULKINSERT 根本不喜欢它。

最佳答案

根据RFC4180最后的行尾是可选的。所以作家可以写也可以不写。 openCSVWriter 无法选择创建没有行结尾的结尾。您可以扩展该类并为行结尾添加一个 setter ,并在编写最后一行之前将其设置为空或手动编写。

对于每种可能性,您应该查看 writer 的来源.

关于java - OpenCSV CSVWriter 在文件末尾添加空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191772/

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