我正在使用iText创建RTF文档。完成后它将有几百页。但是,当它完成将所有各种段落和表添加到文档中时,我不断得到一个outofmemory错误,并且它正在尝试实际创建RTF文件(使用document.close();)
我使用-Xmx350m增加了运行时内存,但由于用户计算机没有那么多内存,所以不再增加它。
有没有办法逐步写入RTF文档,而不是最后写入一个巨大的块?
答案 0 :(得分:2)
我发现您可以使用以下命令将其设置为在磁盘而不是内存上显式缓存:
Document document = new Document();
RtfWriter2 writer2 = RtfWriter2.getInstance(document, new FileOutputStream("document.rtf"));
writer2.getDocumentSettings().setDataCacheStyle(RtfDataCache.CACHE_DISK);
document.open();
这使得生成速度变慢,但至少它会创建文件而不会出错。但是,如果有人知道的话,我仍然更喜欢逐渐创建文件的方法。