zoukankan      html  css  js  c++  java
  • Java导出CSV文件

    阅读原文

    调用类

    @Test
        public void testWrite() throws Exception {
            FileOutputStream fos = new FileOutputStream("E:/cjsworkspace/cjs-excel-demo/target/abc.csv");
            OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
    
            CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader("姓名", "年龄", "家乡");
            CSVPrinter csvPrinter = new CSVPrinter(osw, csvFormat);
    
    //        csvPrinter = CSVFormat.DEFAULT.withHeader("姓名", "年龄", "家乡").print(osw);
    
            for (int i = 0; i < 10; i++) {
                csvPrinter.printRecord("张三", 20, "湖北");
            }
    
            csvPrinter.flush();
            csvPrinter.close();
    
        }
    
        @Test
        public void testRead() throws IOException {
            InputStream is = new FileInputStream("E:/cjsworkspace/cjs-excel-demo/target/abc.csv");
            InputStreamReader isr = new InputStreamReader(is, "GBK");
            Reader reader = new BufferedReader(isr);
    
            CSVParser parser = CSVFormat.EXCEL.withHeader("name", "age", "jia").parse(reader);
    //        CSVParser csvParser = CSVParser.parse(reader, CSVFormat.DEFAULT.withHeader("name", "age", "jia"));
            List<CSVRecord> list = parser.getRecords();
            for (CSVRecord record : list) {
                System.out.println(record.getRecordNumber()
                        + ":" + record.get("name")
                        + ":" + record.get("age")
                        + ":" + record.get("jia"));
            }
    
            parser.close();
        }
    
        /**
         * Parsing an Excel CSV File
         */
        @Test
        public void testParse() throws Exception {
            Reader reader = new FileReader("C:/Users/Administrator/Desktop/abc.csv");
            CSVParser parser = CSVFormat.EXCEL.parse(reader);
            for (CSVRecord record : parser.getRecords()) {
                System.out.println(record);
            }
            parser.close();
        }
    
        /**
         * Defining a header manually
         */
        @Test
        public void testParseWithHeader() throws Exception {
            Reader reader = new FileReader("C:/Users/Administrator/Desktop/abc.csv");
            CSVParser parser = CSVFormat.EXCEL.withHeader("id", "name", "code").parse(reader);
            for (CSVRecord record : parser.getRecords()) {
                System.out.println(record.get("id") + ","
                        + record.get("name") + ","
                        + record.get("code"));
            }
            parser.close();
        }
    
        /**
         * Using an enum to define a header
         */
        enum MyHeaderEnum {
            ID, NAME, CODE;
        }
    
        @Test
        public void testParseWithEnum() throws Exception {
            Reader reader = new FileReader("C:/Users/Administrator/Desktop/abc.csv");
            CSVParser parser = CSVFormat.EXCEL.withHeader(MyHeaderEnum.class).parse(reader);
            for (CSVRecord record : parser.getRecords()) {
                System.out.println(record.get(MyHeaderEnum.ID) + ","
                        + record.get(MyHeaderEnum.NAME) + ","
                        + record.get(MyHeaderEnum.CODE));
            }
            parser.close();
        }
    
    
        private List<Map<String, String>> recordList = new ArrayList<>();
    
        @Before
        public void init() {
            for (int i = 0; i < 5; i++) {
                Map<String, String> map = new HashMap<>();
                map.put("name", "zhangsan");
                map.put("code", "001");
                recordList.add(map);
            }
        }
    
        @Test
        public void writeMuti() throws InterruptedException {
            ExecutorService executorService = Executors.newFixedThreadPool(3);
            CountDownLatch doneSignal = new CountDownLatch(2);
    
            executorService.submit(new exprotThread("E:/0.csv", recordList, doneSignal));
            executorService.submit(new exprotThread("E:/1.csv", recordList, doneSignal));
    
            doneSignal.await();
            System.out.println("Finish!!!");
        }
    
        class exprotThread implements Runnable {
    
            private String filename;
            private List<Map<String, String>> list;
            private CountDownLatch countDownLatch;
    
            public exprotThread(String filename, List<Map<String, String>> list, CountDownLatch countDownLatch) {
                this.filename = filename;
                this.list = list;
                this.countDownLatch = countDownLatch;
            }
    
            @Override
            public void run() {
                try {
                    CSVPrinter printer = new CSVPrinter(new FileWriter(filename), CSVFormat.EXCEL.withHeader("NAME", "CODE"));
                    for (Map<String, String> map : list) {
                        printer.printRecord(map.values());
                    }
                    printer.close();
                    countDownLatch.countDown();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
  • 相关阅读:
    笔试-2020软件工程师Java(上海)中科创达(收获很多,自己基础还是不行)
    SpringCloud-Spring Cloud 2 Finchley.M9报错问题
    IDEA 实体类生成serialVersionUID
    idea创建maven项目时出现Unable to import maven project: See logs for details
    Eclipse可以执行jsp文件却无法访问Tomcat主页
    已知n个正数:wi, 1<=i<=n, 和M。要求找出{wi }的所有子集使得子集内元素之和等于M。例如: n=4, (w1,w2,w3,w4)=(11,13,24,7),M=31 则满足要求的子集是(11,13,7)和(24,7)。
    嵌入式系统外部中断实验(按下按键,LED灯依次熄灭)
    嵌入式系统按键实现(按下按钮,LED灯熄灭)
    如何跳转一个由两个框架组成的页面
    对某个页面的过滤
  • 原文地址:https://www.cnblogs.com/userzf/p/14219685.html
Copyright © 2011-2022 走看看