OpenCsv使用
文章目錄
- 說明
- OpenCsv具體使用
- OpenCsv讀數據
- OpenCsv寫數據
說明
OpenCsv是一個非常簡單的CSV解析庫,幫助我們更好處理CSV格式文件。
<!-- 使用opencsv --> <dependency><groupId>com.opencsv</groupId><artifactId>opencsv</artifactId><version>4.5</version> </dependency>OpenCsv具體使用
樣例csvtest.csv數據,格式編碼為UTF-8
"name","sex","age" "柳夢璃","女","16" "云天河","男","17" "韓菱紗","女","17" "王小二","男","16,17"OpenCsv讀數據
根據CSVReader將文件內容讀出來,注意最后一條“王小二”這條數據也能正常讀出來,如果自己使用“,”分隔容易錯列。
/*** 讀取一個csv文件*/public static void readCsv() {String mypath = "D:\\WorkSpace\\IDEA_WorkSpace\\sortalgorithm-demos\\src\\main\\resources\\csvtest.csv";//以","作為解析的分隔符CSVParser csvParser = new CSVParserBuilder().withSeparator(',').build();//使用try(){}catch()這種語法資源會自動關閉不需要自己finally里關閉資源,推薦使用try (CSVReader readerCsv = new CSVReaderBuilder(Files.newBufferedReader(Paths.get(mypath), StandardCharsets.UTF_8)).withCSVParser(csvParser).withSkipLines(1).build()) {String lines[];while ((lines = readerCsv.readNext()) != null) {Arrays.asList(lines).forEach(System.out::println);}} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}輸出結果:
柳夢璃 女 16 云天河 男 17 韓菱紗 女 17 王小二 男 16,17OpenCsv寫數據
將內容輸出到文件,默認CSV格式文件是以“,”隔開的。
/*** 寫數據*/public static void writeCsv() {String myPath = "D:\\WorkSpace\\IDEA_WorkSpace\\sortalgorithm-demos\\src\\main\\resources\\csvouttest.csv";String[] data1 = {"姓名", "性別", "年齡"};String[] data2 = {"云天明", "男", "17"};String[] data3 = {"韓菱紗", "女", "16"};//將數據放到列表里面List<String[]> datas = new ArrayList();datas.add(data1);datas.add(data2);datas.add(data3);//將內容輸入到文件try (CSVWriter writer = new CSVWriter(Files.newBufferedWriter(Paths.get(myPath), StandardCharsets.UTF_8),CSVWriter.DEFAULT_SEPARATOR,CSVWriter.NO_QUOTE_CHARACTER,CSVWriter.NO_ESCAPE_CHARACTER,CSVWriter.DEFAULT_LINE_END)) {//寫數據到文件writer.writeAll(datas);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}得到文件內容:
姓名,性別,年齡 云天明,男,17 韓菱紗,女,16總結
- 上一篇: EasyExcle使用小结
- 下一篇: CentOS7下Hive集群搭建