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 }

本文读写采用缓冲流的方式进行读写,缓冲流有降低程序运行时间的特点。

值得注意的是,一定要在恰当的位置关闭缓冲流,避免造成缓冲区数据为输出,导致数据的缺失的后果。

猜你喜欢

转载自www.cnblogs.com/jpapplication/p/9147122.html