CSV是逗號分隔文件(Comma Separated Values)的首字母英文縮寫,是一種用來存儲數據的純文本格式,通常用於電子表格或數據庫軟件。在 CSV文件中,數據“欄”以逗號分隔,可允許程序通過讀取文件為數據重新創建正確的欄結構,並在每次遇到逗號時開始新的一欄。如:
1,張三,男
2,李四,男
3,小紅,女
1、CSV導入/導出封裝類
package com.parami.utils; 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 林計欽 * @version 1.0 Jan 27, 2014 4:30:58 PM */ 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; } }
2、CSV導入/導出測試
package junit.test; import java.io.File; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.parami.utils.CSVUtils; /** * CSV操作(導出和導入) * * @author 林計欽 * @version 1.0 Jan 27, 2014 4:17:02 PM */ public class CsvTest { /** * CSV導出 * * @throws Exception */ @Test public void exportCsv() { List<String> dataList=new ArrayList<String>(); dataList.add("1,張三,男"); dataList.add("2,李四,男"); dataList.add("3,小紅,女"); boolean isSuccess=CSVUtils.exportCsv(new File("D:/test/ljq.csv"), dataList); System.out.println(isSuccess); } /** * CSV導出 * * @throws Exception */ @Test public void importCsv() { List<String> dataList=CSVUtils.importCsv(new File("D:/test/ljq.csv")); if(dataList!=null && !dataList.isEmpty()){ for(String data : dataList){ System.out.println(data); } } } }