在格式化的CSV开头添加空白行

时间:2018-11-05 21:08:56

标签: java opencsv

在尝试使用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[]{});,但仍然失败。我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

您需要直接写入FileWriter:

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

然后像以前一样继续