`
weihong01267
  • 浏览: 51271 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

下载csv内存爆掉解决方案

    博客分类:
  • java
 
阅读更多

今天一个下载csv功能测试的时候内存爆掉了代码如下:

File file = new File(tempCsvDir+File.separator+filename+".csv");

            InputStream fis = new BufferedInputStream(new FileInputStream(file));

            byte[] buffer = new byte[fis.available()];

            fis.read(buffer);

            fis.close();

// 清空response

            response.reset();

// 设置response的Header

            response.addHeader("Content-Disposition", "attachment;filename=" + new String((new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+"xxx.csv").getBytes()));

            response.addHeader("Content-Length", "" + file.length());

            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());

            response.setContentType("application/octet-stream");

            toClient.write(buffer);

            toClient.flush();

            toClient.close();

后面在网上找到答案:修改后好了

循环读取

OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024 * 1024 * 8];
int i = -1;
while ((i = fis.read(buffer)) != -1) {
    toClient.write(buffer, 0, i);
}
fis.close();        
toClient.flush();
toClient.close();

0
3
分享到:
评论

相关推荐

    Unity上使用csv文件做配置的解决方案,包含批量将exce转csv的工作流

    本解决方案着重于如何在Unity项目中利用CSV文件作为配置,并提供了将Excel表格批量转换为CSV格式的工作流程。 首先,我们来看如何在Unity中使用CSV文件。CSV文件本质上是文本文件,每一行代表一个数据项,每个字段...

    纯js生成并下载CSV文件

    纯JavaScript实现生成并下载CSV文件,前端竟然可以生成CSV文件,感兴趣的可以看下如何生成CSV文件,并且下载。

    CSV监控系统技术解决方案(兼容DVR).doc

    CSV监控系统技术解决方案(兼容DVR)

    java csv大数据量导出(千万级别,不会内存溢出)

    为了应对这种情况,我们需要采用优化策略来实现高效且不会内存溢出的大数据量CSV导出。 首先,了解Java中处理CSV的基本方法。Java标准库并没有提供直接处理CSV的API,但我们可以借助第三方库,如Apache Commons CSV...

    csv文件中,解决数字列转换成文本列

    ### 二、解决方案概述 要将CSV文件中的数字列转换为文本列,可以通过编程语言如Java来实现。主要步骤包括读取原始CSV文件,对指定的数字列进行转换,然后再将修改后的数据写回到新的CSV文件中。 ### 三、具体实施...

    MySQL如何导入csv格式数据文件解决方案

    Sql代码 代码如下: load data infile ‘D:\\top-1m.csv’ into table `site` fields terminated by ‘,’ optionally enclosed by ‘”‘ escaped by ‘”‘ lines terminated by ‘\n’; 顺带也备份个导出

    poi大量数据读取gc内存溢出解决方案

    poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取...此解决方案可支持千万数据的传输不报错

    PLSQL导出CSV后中文乱码解决办法

    除了以上方法,你还可以尝试其他解决方案,例如在PLSQL Developer工具中直接设置导出时的编码,或者使用第三方工具进行文件转换。例如,可以使用Notepad++这样的文本编辑器打开CSV文件,查看并更改文件编码,然后再...

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

    - 如果可能,可以考虑使用CSV格式代替Excel,因为CSV文件对内存的需求较低,并且大多数应用程序都能读取。 8. **异步处理**: - 使用多线程或者异步处理,将数据导出任务分解成多个子任务,每个任务处理一部分...

    js生成csv文件下载

    js生成csv文件下载

    csv文件下载(人员信息.txt)

    由于在学习numpy数据分析的时候没有csv类型文件,又懒得自己一个个敲字,便想来csdn里随便下载一个。然而......居然要钱啊!!!!!!!我没钱,所以自己写了个,我不要你们的钱,麻烦各位拿资源的时候吱一声,这是...

    CSV格式的文件上传以及下载(c#)

    首先,我们来看如何将数据写入CSV格式的文档并实现下载功能。在C#中,可以使用`StreamWriter`类来创建并写入CSV文件。每个字段之间用逗号分隔,行与行之间用换行符`\n`隔开。例如,假设有以下数据: ```csharp ...

    csv_example.rar

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据存储格式,因其简洁、通用和易于处理的特性而受到青睐。本示例“csv_example.rar”专注于在Windows操作系统环境下,通过编程语言来读取CSV文件。...

    完整实现ftp上传与下载并解析csv文件

    本项目涉及的关键知识点包括FTP客户端的实现、CSV文件的解析、多文件下载与并发处理以及日志记录。以下是对这些核心内容的详细阐述: 1. FTP客户端实现: FTP客户端通常由两部分组成:连接管理(登录、断开连接)...

    CSV 文件帮助类,CSV Helper

    通过其丰富的功能和可配置性,无论是在简单的数据导入导出还是复杂的数据处理任务中,都能提供高效且可靠的解决方案。当你需要处理包含特殊字符的 CSV 文件时,C# CSV Helper 更是得力助手。正确理解和使用这个库,...

    CSV大数据分批并压缩导出

    总的来说,CSV大数据分批并压缩导出是一种实用且高效的解决方案,特别适用于需要处理海量数据且内存资源有限的环境。它结合了分批处理的内存管理策略和压缩技术的空间优化,确保了大数据操作的可行性和性能。

    heart.csv、gisette.csv+elevators.csv+glass.csv

    这里的"heart.csv、gisette.csv+elevators.csv+glass.csv"提到的三个CSV文件,分别代表三个不同的数据集,可以用于训练和评估不同的机器学习模型。 1. **heart.csv**: 这个数据集通常用于预测心脏病的发生。它可能...

    各种csv格式的数据集

    CSV(Comma Separated Values)格式是一种广泛使用的数据存储标准,它简单易读,且跨平台兼容性好。本资料包“各种csv格式的数据集”包含了不同行业的数据,如餐饮、电信、航空和商圈,这些都是研究和应用分析的重要...

    csv拆分工具.rar

    CSV(Comma Separated ...总之,“csv拆分工具”是解决大CSV文件处理问题的有效解决方案,它能帮助我们更高效、安全地管理和操作大量数据。通过理解其工作原理和使用方法,我们可以更好地利用这类工具提升工作效率。

    mtcars.csv 资源下载

    mtcars 数据集,下载地址: http://forge.scilab.org/index.php/p/rdataset/source/tree/master/csv/datasets/mtcars.csv

Global site tag (gtag.js) - Google Analytics