java CSV寫文件

@Test
    public void write(){
    try {
             // 創建CSV寫對象
    List<Student> ls=new ArrayList<Student>();
             for (int i = 0; i <1000000; i++) {
            Student s=new Student();
            s.setName("小帥"+i);
            s.setAge(i);
            s.setScore("100"+i);
            s.setSex("男"+i);
            ls.add(s);
}
             //寫入臨時文件
             File tempFile = File.createTempFile("vehicle", ".csv");
             CsvWriter csvWriter = new CsvWriter(tempFile.getCanonicalPath(),',', Charset.forName("UTF-8"));
             // 寫表頭
             long s= System.currentTimeMillis();
             System.err.println();
             String[] headers = {"姓名","年齡","編號","性別"};
             csvWriter.writeRecord(headers);
             for (Student stu : ls) {
        csvWriter.write(stu.getName());
        csvWriter.write(stu.getAge()+"");
        csvWriter.write(stu.getScore());
        csvWriter.write(stu.getSex());
        csvWriter.endRecord();
        }
             csvWriter.close();
             long e=System.currentTimeMillis();

             System.err.println(e-s);;

   /**
    * 寫入csv結束,寫出流
    */
   java.io.OutputStream out = getResponse.getOutputStream();  
   byte[] b = new byte[10240];
   java.io.File fileLoad = new java.io.File(tempFile.getCanonicalPath());  
   getResponse.reset();
   getResponse.setContentType("application/csv");  
   getResponse.setHeader("content-disposition", "attachment; filename=vehicleModel.csv");  
    long fileLength = fileLoad.length();  
    String length1 = String.valueOf(fileLength);  
    getResponse.setHeader("Content_Length", length1);  
    java.io.FileInputStream in = new java.io.FileInputStream(fileLoad);  
    int n;  
    while ((n = in.read(b)) != -1) {  
       out.write(b, 0, n); //每次寫入out1024字節 
    }  
       in.close();  
       out.close(); 

         } catch (IOException e) {
             e.printStackTrace();
         }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章