我正在使用以下代码从竖线分隔的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;
}
在谷歌上搜索时,我发现至少here和另一个站点都曾询问过这个问题。另一个站点声称这是OpenCSV的工作方式,并建议编辑文件大小,但是必须有其他方法。
是否可以从文件末尾删除此空白行? SQL Server BULKINSERT
根本不喜欢它。