代码之家  ›  专栏  ›  技术社区  ›  Nimchip

将空行添加到格式化CSV的开头

  •  1
  • Nimchip  · 技术社区  · 7 年前

    我尝试在使用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 回复  |  直到 7 年前
        1
  •  1
  •   Robin Green    7 年前

    您需要直接写入FileWriter:

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

    然后像以前一样继续。