gpt4 book ai didi

java - 下载文件时堆空间异常

转载 作者:行者123 更新时间:2023-12-01 15:28:43 25 4
gpt4 key购买 nike

我有一个应用程序,如果我下载几个条目,那么我的 csv 文件的下载工作正常......但如果有很多条目,则会出现 java 异常,并且在调试时会给出 vmdisconnected 异常。我正在尝试获取名为

的变量中的所有数据
String content = service.generateCSV(SearchVO);

此内容变量在操作类中设置,然后我有一个 downloadservlet 类,我在其中获取此内容变量。

String content = (String) request.getAttribute(CONTENT);

任何人都可以建议我如何阅读内容,以便我可以下载文件,即使它有很多条目

这就是我从数据库获取数据的方式

    `while (sqlRowSet.next()) 
{
data = (DB2Xml) sqlRowSet.getObject(Constants.TABLE_NAME_XML);
dl = data.getDB2XmlString();}

堆栈跟踪:-

java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at java.lang.StringBuffer.toString(Unknown Source)
at com.ibm.db2.jcc.c.fc.getDB2XmlString(fc.java:187)

最佳答案

您的问题似乎是您正在尝试处理一个太大而无法在内存中一次性使用的源。

解决该问题的一种方法可能是逐渐(例如逐行)读取源代码(并处理数据),而不是一次性读取所有内容。

这是如何从 url 逐渐(逐行)读取文件并将其复制到另一个文件的示例:

            URL url;
try {
url = new URL(location);
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
BufferedWriter out = new BufferedWriter(new FileWriter(saveFile));
String buffer;
while ((buffer = in.readLine()) != null) {
out.write(buffer);
// write the file or do whatever you want with it

}
in.close();
out.close();

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

关于java - 下载文件时堆空间异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com