java应用:csv文件的读写
csv数据特点:
csv是文本格式,一行数据是一条记录,每个单元之间用“,”隔开。csv数据可以用Excel打开。
读写csv文件的主要程序如下所示:
1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.File; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 public class Add { 12 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub 15 BufferedReader br=null; 16 BufferedWriter bw = null; 17 try { 18 bw=new BufferedWriter(new FileWriter("D:\\Documents\\adf_all.csv")); 19 } catch (IOException e) { 20 // TODO Auto-generated catch block 21 e.printStackTrace(); 22 } 23 for(int i=1;i<=8337;i++) { 24 try { 25 br=new BufferedReader(new FileReader(new File("D:\\Documents\\adf\\adf_"+i+".csv"))); 26 String line; 27 List<String> allString=new ArrayList<>(); 28 try { 29 while((line=br.readLine())!=null) { 30 if(i==1) { 31 bw.write(line); 32 bw.newLine(); 33 }else { 34 allString.add(line); 35 if(allString.size()>1) { 36 bw.write(line); 37 bw.newLine(); 38 } 39 } 40 } 41 } catch (IOException e) { 42 // TODO Auto-generated catch block 43 e.printStackTrace(); 44 } 45 } catch (FileNotFoundException e) { 46 // TODO Auto-generated catch block 47 e.printStackTrace(); 48 } 49 } 50 try { 51 br.close(); 52 } catch (IOException e) { 53 // TODO Auto-generated catch block 54 e.printStackTrace(); 55 } 56 try { 57 bw.close(); 58 } catch (IOException e) { 59 // TODO Auto-generated catch block 60 e.printStackTrace(); 61 } 62 System.out.println("完成"); 63 } 64 65 }
本文读写采用缓冲流的方式进行读写,缓冲流有降低程序运行时间的特点。
值得注意的是,一定要在恰当的位置关闭缓冲流,避免造成缓冲区数据为输出,导致数据的缺失的后果。