缓冲区很小

时间:2013-07-12 19:31:42

标签: java

在我的网络应用中,我使用的是BufferedWriter,因此用户可以生成和下载报告。

File evl = new File(tmpDirPath + "evl.xml");
portEVL.deleteOnExit();
fw = new FileWriter(evl);
bw = new BufferedWriter(fw);
bw.write(getHeader().concat(evlBuffer.toString()));

写入缓冲区时,我收到以下错误消息:

Caused By: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)

我尝试增加缓冲区大小但仍然是相同的错误

是否有理由将写作过程或其他想法分开?

1 个答案:

答案 0 :(得分:3)

您的问题与缓冲区空间无关,您的JVM中的堆空间已用尽!

尝试使用以下标志增加堆大小:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms16m -Xmx64m ClassName

最重要的是-Xmx<size> set maximum Java heap size

您也可以通过java -Xmx2g ClassName

始终以千兆字节为单位

Here is the official Oracle documentation.