• java 对CSV 文件的读取与生成


    CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开。CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CSV文件的读取与生成其实很简单,只要读取的时候用(,)进行切割就可以获得相应的列元素,在生成的时候不同的列元素之间加上(,

    demo如下:

       //读取CSV文件
        public void readCsvFile(String fileName) throws IOException {
            BufferedReader  bufferedReader=null;
            try{
               bufferedReader=new BufferedReader(new FileReader(fileName));
               String line=null;
               while(null!=(line=bufferedReader.readLine())){
                   String[] lines = line.split(",");
                   logger.info("这就是文件的内容"+ Arrays.toString(lines));
               }
            }catch (IOException e){
               throw  new IOException(e);
            }finally {
               if(bufferedReader!=null){
                   try {
                       bufferedReader.close();
                   } catch (IOException e) {
                       logger.error("输入流关流出现异常",e);
                   }
               }
            }
        }
    

      

        //生产CSV文件
        public static void writerCsvFile(String fileName, List<String[]> list) throws IOException {
            BufferedWriter   bufferedWriter=null;
            try{
                bufferedWriter= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName),"GBK"));
                for (String[] s:list) {
                    for (int i=0;i<s.length;i++){
                        bufferedWriter.write(s[i]);
                        bufferedWriter.write(",");
                    }
                    bufferedWriter.newLine();//记得换行
                }
            }catch (IOException e){
                throw  new IOException(e);
            }finally {
                if(bufferedWriter!=null){
                    try {
                        bufferedWriter.close();
                    } catch (IOException e2) {
                        logger.error("输出流关流出现异常",e2);
                    }
                }
            }
        }
    

      值得注意的是:在进行生成CSV文件的时候,对于长的数字组成的字符串的写入,CSV会自动进行数字化转换,即科学计数法,对于要不要处理,还是根据需求来定

       如果是想直观的双击打开就不要进行转换的话,就要在写入的时候,告诉CSV,我不是写的数字,可以进行再写的时候拼接 ,;等信息

       如果生成的CSV文件,也是使用的输入流进行读取的话,不用做处理,会自动进行识别,因为这个是CSV文件的格式

  • 相关阅读:
    文本每行都应该换行——vi文件末尾自动换行,不会导致php输出空行
    路由器 DNSMasq 替代 hosts,支持Android、iPhone、PC
    互联网创业的准备——web server:apache、nginx、lighttpd与php module、fastcgi
    dev qa prod
    互联网创业的准备——框架:从MVC到开放API
    Realtek 8192cu win8 驱动
    Win8 RTM 安装到 UEFI PC
    互联网创业的准备——数据库:硬盘iops、mysql
    互联网创业的准备——数据备份
    互联网创业的准备——依赖服务:云主机、域名、代码库
  • 原文地址:https://www.cnblogs.com/gdhzdbh/p/10682412.html
Copyright © 2020-2023  润新知