JAVA CSV操作(讀取和寫入)
阿新 • • 發佈:2019-02-06
package com.udbac.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.List; /** * CSV操作(讀取和寫入) * @author lq * @version 2018-04-23 */ public class CSVUtils { /** * 讀取 * @param file csv檔案(路徑+檔名),csv檔案不存在會自動建立 * @param dataList 資料 * @return */ public static boolean exportCsv(File file, List<String> dataList){ boolean isSucess=false; FileOutputStream out=null; OutputStreamWriter osw=null; BufferedWriter bw=null; try { out = new FileOutputStream(file); osw = new OutputStreamWriter(out); bw =new BufferedWriter(osw); if(dataList!=null && !dataList.isEmpty()){ for(String data : dataList){ bw.append(data).append("\r"); } } isSucess=true; } catch (Exception e) { isSucess=false; }finally{ if(bw!=null){ try { bw.close(); bw=null; } catch (IOException e) { e.printStackTrace(); } } if(osw!=null){ try { osw.close(); osw=null; } catch (IOException e) { e.printStackTrace(); } } if(out!=null){ try { out.close(); out=null; } catch (IOException e) { e.printStackTrace(); } } } return isSucess; } /** * 寫入 * @param file csv檔案(路徑+檔案) * @return */ public static List<String> importCsv(File file){ List<String> dataList=new ArrayList<String>(); BufferedReader br=null; try { br = new BufferedReader(new FileReader(file)); String line = ""; while ((line = br.readLine()) != null) { dataList.add(line); } }catch (Exception e) { }finally{ if(br!=null){ try { br.close(); br=null; } catch (IOException e) { e.printStackTrace(); } } } return dataList; } /** * 測試 * @param args */ public static void main(String[] args){ //exportCsv(); //importCsv(); } /** * CSV讀取測試 * @throws Exception */ public static void importCsv() { List<String> dataList=CSVUtils.importCsv(new File("D:/test/ljq.csv")); if(dataList!=null && !dataList.isEmpty()){ for(int i=0; i<dataList.size();i++ ){ if(i!=0){//不讀取第一行 String s=dataList.get(i); System.out.println("s "+s); String[] as = s.split(","); System.out.println(as[0]); System.out.println(as[1]); System.out.println(as[2]); } } } } /** * CSV寫入測試 * @throws Exception */ public static void exportCsv() { List<String> dataList=new ArrayList<String>(); dataList.add("number,name,sex"); dataList.add("1,張三,男"); dataList.add("2,李四,男"); dataList.add("3,小紅,女"); boolean isSuccess=CSVUtils.exportCsv(new File("D:/test/ljq.csv"), dataList); System.out.println(isSuccess); } }