我试图使用ObjectOutputStream将其中一个类对象保存到File。当我的对象以大小增长时,我得到以下错误,否则一切都很好。
线程“Thread-2”中的异常java.lang.OutOfMemoryError:Java堆空间 在java.io.ObjectOutputStream $ HandleTable.growEntries(ObjectOutputStream.java:2308)
我的代码如下所示:
try {
FileOutputStream fout = new FileOutputStream("D:\\out.dat");
ObjectOutputStream os = new ObjectOutputStream(fout);
os.writeObject(this.obj); // Writing object to a File
os.close();
fout.close();
os=null;
fout=null;
} catch (Exception e) {
e.printStackTrace();
}
请建议我如何解决这个问题?任何替代方法都可以实现相同的目标吗?
答案 0 :(得分:3)
使用-Xms1024M -Xmx1024M
选项启动您的程序。你通常不会得到那个错误,除非那个对象真的很大和/或你有一个RAM量很小的计算机。
答案 1 :(得分:3)
前一段时间我遇到了类似的问题,我有以下两个选项可以解决这类问题:
-Xms
和-Xmx
参数