是否可以使用iText RTF(Java库)逐渐刷新输出?(outofmemory错误)

是否可以使用iText RTF(Java库)逐渐刷新输出?(outofmemory错误),java,itext,Java,Itext,我正在使用iText创建一个RTF文档。完成后会有几百页。但是,当它将所有不同的段落和表格添加到文档中,并试图实际创建RTF文件(使用document.close();)时,我不断遇到一个outofmemory错误 我已经用-Xmx350m增加了运行时内存,但是再增加它是不可行的,因为用户的计算机将没有那么多内存 有没有一种方法可以逐渐写入RTF文档,而不是最后写入一个巨大的块?我发现您可以使用以下方法将其设置为显式缓存在磁盘上而不是内存中: Document document = new Do

我正在使用iText创建一个RTF文档。完成后会有几百页。但是,当它将所有不同的段落和表格添加到文档中,并试图实际创建RTF文件(使用document.close();)时,我不断遇到一个outofmemory错误

我已经用-Xmx350m增加了运行时内存,但是再增加它是不可行的,因为用户的计算机将没有那么多内存


有没有一种方法可以逐渐写入RTF文档,而不是最后写入一个巨大的块?

我发现您可以使用以下方法将其设置为显式缓存在磁盘上而不是内存中:

Document document = new Document();
RtfWriter2 writer2 = RtfWriter2.getInstance(document, new FileOutputStream("document.rtf"));
writer2.getDocumentSettings().setDataCacheStyle(RtfDataCache.CACHE_DISK);
document.open();
这会降低生成速度,但至少创建文件时不会出错。但是,如果有人知道的话,我仍然更喜欢一种逐步创建文件的方法