OpenCsv使用
文章目錄
- 說(shuō)明
- OpenCsv具體使用
- OpenCsv讀數(shù)據(jù)
- OpenCsv寫(xiě)數(shù)據(jù)
說(shuō)明
OpenCsv是一個(gè)非常簡(jiǎn)單的CSV解析庫(kù),幫助我們更好處理CSV格式文件。
<!-- 使用opencsv --> <dependency><groupId>com.opencsv</groupId><artifactId>opencsv</artifactId><version>4.5</version> </dependency>OpenCsv具體使用
樣例csvtest.csv數(shù)據(jù),格式編碼為UTF-8
"name","sex","age" "柳夢(mèng)璃","女","16" "云天河","男","17" "韓菱紗","女","17" "王小二","男","16,17"OpenCsv讀數(shù)據(jù)
根據(jù)CSVReader將文件內(nèi)容讀出來(lái),注意最后一條“王小二”這條數(shù)據(jù)也能正常讀出來(lái),如果自己使用“,”分隔容易錯(cuò)列。
/*** 讀取一個(gè)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()這種語(yǔ)法資源會(huì)自動(dòng)關(guān)閉不需要自己finally里關(guān)閉資源,推薦使用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();}}輸出結(jié)果:
柳夢(mèng)璃 女 16 云天河 男 17 韓菱紗 女 17 王小二 男 16,17OpenCsv寫(xiě)數(shù)據(jù)
將內(nèi)容輸出到文件,默認(rèn)CSV格式文件是以“,”隔開(kāi)的。
/*** 寫(xiě)數(shù)據(jù)*/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"};//將數(shù)據(jù)放到列表里面List<String[]> datas = new ArrayList();datas.add(data1);datas.add(data2);datas.add(data3);//將內(nèi)容輸入到文件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)) {//寫(xiě)數(shù)據(jù)到文件writer.writeAll(datas);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}得到文件內(nèi)容:
姓名,性別,年齡 云天明,男,17 韓菱紗,女,16總結(jié)
- 上一篇: EasyExcle使用小结
- 下一篇: CentOS7下Hive集群搭建