作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序,如果我下载几个条目,那么我的 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/
我是一名优秀的程序员,十分优秀!