处理CSV数据

650 阅读1分钟

CSV是一种通用的、相对简单的文件格式,excel、database等可与之互转,方便数据处理。 一般以,作为分隔符,当我们遇到内容中也有,的时候就不太好处理了,可以简单用一些第三方库处理一下。

例如如下文件就不太好处理

1,"test,test",110
2,"test,test",220
    public void testCsv() {
        try {
            ICSVWriter writer = new CSVWriterBuilder(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("out.csv"))))).build();
            try (CSVReader csvReader = new CSVReaderBuilder(new BufferedReader(new InputStreamReader(new FileInputStream(new File("in.csv")), "utf-8"))).build()) {
                for (String[] next : csvReader) {
                    //只需要第1列和第3列的数据
                    String[] out = new String[]{next[0], next[2]};
                    writer.writeNext(out);
                    Arrays.stream(out).forEach(System.out::print);
                    System.out.println();
                }
                writer.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

相关依赖库

testImplementation 'com.opencsv:opencsv:4.4'