在尝试使用SP(和FMT文件)进行批量插入之前,我试图从csv中删除引号。问题是我们的FMT文件在标题处理之前是在空行上计数,因此,如果没有起始空行,则SP将失败。我想以某种方式在标题之前添加一个空白行。
这是我的代码
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);
//skips headers
reader.skip(1);
CSVWriter writer = new CSVWriter(new FileWriter(convertedFilename.toAbsolutePath().toString()), '|', CSVWriter.NO_QUOTE_CHARACTER);
String[] currentLine;
while((currentLine = reader.readNext()) != null) {
writer.writeNext(currentLine);
}
writer.close();
return convertedFilename;
}
我尝试使用writer.writeNext(new String[]{});
,但仍然失败。我在这里做什么错了?
答案 0 :(得分:1)
您需要直接写入FileWriter:
FileWriter fw = new FileWriter(convertedFilename.toAbsolutePath().toString());
fw.write(System.lineSeparator());
CSVWriter writer = new CSVWriter(fw, '|', CSVWriter.NO_QUOTE_CHARACTER);
然后像以前一样继续