`
pacer123
  • 浏览: 88752 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

大批量数据导出csv文件

阅读更多

     web系统中常见的对数据进行导出备份功能,通常我们按照要求都是导出excel文件。但是当数据量比较大时,数万条就可能比较慢甚至出现内存溢出。如果用户不强求excel导出的模板样式,字体等。则可以通过导出cvs文件来满足大批量数据导出。可以导出cvs文件后通过excel打开。

    网上下载了opencsv.jar包,通过提供的jar包进行cvs的文件导出,简单的代码如下

      String[] title =new String[]{"name,sex,age"};
        String[][] data = new String[][]{title, {"aa", "F", "22"}, {"bb", "M", "25"}, {"cc", "F", "19"}};

         File tempFile = new File("c:/cc.csv");        
         CSVWriter writer = new CSVWriter(new FileWriter(tempFile));
     

        for (int i = 0; i < data.length; i++) {
             writer.writeNext(data[i]);
         }
         writer.close();

    此种方法出现一个问题,就是CSVWriter对象的writeNext方法只能以数组作为参数。这样就会出现一个问题,当数据量很大的时候则需要开发人员封装相应的数据(字符串数组)。通过测试,很容易出现了内存溢出的现象。不能满足要求,此时对上述代码进行了改进,采用BufferWriter对象来实现上述功能,我们可以按照行数据进行封装,字段间以“,”逗号间隔,每行数据结束后以“\n”换行结束,可以将大数据量的数据进行封装成StringBuffer。

调用BufferWriter对象的write(finalString.toString()); 方法即可。这样避免了内存溢出,测试后到处速度有了很大的提升。   

         注意:当导出的数据中存在隐藏回车时,会出现比较诡异的现象(csv文件用editplus打开的时候假如是20行,但通过excel打开可能会出现20多行,由于数据中某字段数据存在隐藏回车,此时需要在行数据封装时给数据两边加双引号("\"")。可以解决上面的怪异现象.当存在科学计数现象或者日期字段数据被截取时,给该数据前加("\t").可避免上述现象。

  

分享到:
评论

相关推荐

    java实现csv导出千万级数据实例

    轻松解决普通poi形式导出Excel的中出现的栈溢出问题,此资源可实现千万级数据分批导出csv文件,测试实现16500000条数据大概80秒左右;具体表里内容。

    java解决大批量数据导出Excel产生内存溢出的方案

    java解决大批量数据导出Excel产生内存溢出的方案

    CSV大数据分批并压缩导出

    使用POI、JXL导出大量的数据到Excel很容易造成内存溢出,而CSV采用流的方式将大数据分批并压缩导出

    CSV导出类库(Easy CSV Export)源码

    轻量级的CSV导出类库,代码量小,使用简单,可以导出为File,TextWriter,HttpResponse。 有测试代码可供参考。 欢迎转载。

    java多线程导出excel(千万级别)优化

    轻松解决普通poi形式导出Excel的中出现的栈溢出问题,此资源可实现千万级数据分批导出csv文件,csv大数据量导出(千万级别,不会内存溢出),多线程导出 ,生产环境已经很稳定的使用着

    easyExcel实现大数据导出

    阿里巴巴easyExcel实现大数据导出!!

    导出大量数据到excel

    导出大量数据到excel,本人已亲测,对几百万数据已测试过,导出数据比较乐观,里面自带压缩文件功能。

    plsql导出数据到excel的三种方法

    plsql导出数据到excel常用的三种方法,(1)直接导出;(2)转换导出方式;(3)导出后转换格式;

    oracle数据导出工具sqluldr2 4.0.1版

    该文件夹内容如下: sqluldr2.exe sqluldr264.exe ...oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。

    sqluldr2超详细使用教程.7z

    oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。

    Java实现excel大数据量导入

    主要为大家详细介绍了Java实现excel大数据量导入,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    sqluldr2工具包

    oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。sqluldr2是一款Oracle数据快速导出工具,包含32、64位程序,win版...

    sqluldr2工具的详细使用教程.7z

    oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。

    Web页面中sqlserver快速导入excel

    Web页面中sqlserver快速导入excel,生成csv格式 有的程序在Web页SQLSERVER导入excel的过程中,会出现下载时找不到样式的错误提示。本资源避免了以上问题,快速打开,快速导出。 c#.Net2005下运行成功。

    win2008r2 AD用户账户的批量导入方法

    如何导入大批量的用户账户?是我们在2008R2安装搭建好之后需要考虑的一件事情。 方法就是把用户信息在Excel文档里面整理好,然后再用命令或者脚本导入到AD里面。 当然,方法是越简单越好,需要我们修改的越少越好。 ...

Global site tag (gtag.js) - Google Analytics