一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - java導出生成csv文件的方法

java導出生成csv文件的方法

2020-07-25 14:23FlyHeLanMan JAVA教程

這篇文章主要為大家詳細介紹了java導出生成csv文件的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

首先我們需要對csv文件有基礎的認識,csv文件類似excel,可以使用excel打開,但是csv文件的本質是逗號分隔的,對比如下圖:

txt中顯示:

java導出生成csv文件的方法

修改文件后綴為csv后顯示如下:

java導出生成csv文件的方法

java中我們一般使用poi操作excel,導入,導出都可以,但是poi很消耗內存,尤其在導出時,這個時候我們其實可以選擇導出生成csv文件,因為其跟文本差不多,所以效率很高。

簡單寫了一個實現類,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
   *      
   *         導出生成csv格式的文件
   * @author     ccg
   * @param     titles csv格式頭文
   * @param     propertys 需要導出的數據實體的屬性,注意與title一一對應
   * @param     list 需要導出的對象集合
   * @return
   * @throws     IOException
   * Created     2017年1月5日 上午10:51:44
   * @throws     IllegalAccessException
   * @throws     IllegalArgumentException
   */
  public static <T> String exportCsv(String[] titles,String[] propertys,List<T> list) throws IOException, IllegalArgumentException, IllegalAccessException{
    File file = new File("d:\\test.csv");
    //構建輸出流,同時指定編碼
    OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(file), "gbk");
    
    //csv文件是逗號分隔,除第一個外,每次寫入一個單元格數據后需要輸入逗號
    for(String title : titles){
      ow.write(title);
      ow.write(",");
    }
    //寫完文件頭后換行
    ow.write("\r\n");
    //寫內容
    for(Object obj : list){
      //利用反射獲取所有字段
      Field[] fields = obj.getClass().getDeclaredFields();
      for(String property : propertys){
        for(Field field : fields){
          //設置字段可見性
          field.setAccessible(true);
          if(property.equals(field.getName())){
            ow.write(field.get(obj).toString());
            ow.write(",");
            continue;
          }
        }
      }
      //寫完一行換行
      ow.write("\r\n");
    }
    ow.flush();
    ow.close();
    return "0";
  }

測試類如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void test() throws IOException, IllegalArgumentException, IllegalAccessException{
    String[] titles = new String[]{"ID","姓名"};
    String[] propertys = new String[]{"id","name"};
    List<User> list = new ArrayList<User>();
    User user;
    user = new User();
    user.setId(1L);
    user.setName("張三");
    list.add(user);
    user = new User();
    user.setId(2L);
    user.setName("李四");
    list.add(user);
    CsvUtil.getInstance().exportCsv(titles,propertys, list);
  }

導出后生成的文件跟上圖一樣,算是一個封裝吧,傳入表頭,以及表頭對應實體的屬性即可,注意要一一對應。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费一级欧美片在线观看 | 男生的j桶女人屁免费视频 男生操男生 | 538精品视频 | 国产三级精品三级男人的天堂 | 欧美办公室激情videos高清 | 美女扒开两腿露出尿口的视频 | 欧美国产合集在线视频 | 好大好硬好紧太深了受不了 | 手机国产乱子伦精品视频 | 好性20岁| 91香蕉影院 | 莫莉瑞典1977k| 欧美日韩综合网在线观看 | 四虎影院永久网站 | 办公室强行丝袜秘书啪啪 | 免费人成网址在线观看国内 | 继的朋友无遮漫画免费观看73 | 我在厨房摸岳的乳HD在线观看 | 1024亚洲天堂 | 国产精品拍拍拍福利在线观看 | 日韩精品欧美激情国产一区 | 调教全程肉动画片在线观看 | 国产尤物视频 | 大胸被c出奶水嗷嗷叫 | 日本大片免aaa费观看视频 | 男人吃奶动态图 | 天天操天天射天天爽 | 国产一区二区三区高清 | 欧美精品色精品一区二区三区 | 97色伦 | 香蕉久久一区二区不卡无毒影院 | 精品四虎国产在免费观看 | 深夜国产在线 | 天天操精品视频 | 无删减影视免费观看 | 国产精品亚洲精品日韩已满 | 爱情岛论坛亚洲品质自拍视频 | 亚洲欧美在线免费 | 欧美日日操 | 美女视频在线观看视频 | 欧美肥乳|