如何在java中使用JRSwapFileVirtualizer进行jasper报告

如何在java中使用JRSwapFileVirtualizer for jasper报告,这是我使用的代码..

JRSwapFileVirtualizer virtualizer = null; virtualizer = new JRSwapFileVirtualizer(10000, new JRSwapFile("F://", 1000, 1000), false); param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); xmlDataSource = new JRXmlDataSource(reportFile,"/table/tr"); jasperPrint = JasperFillManager.fillReport(jasperpath, param, xmlDataSource); 

仍然我得到堆空间错误(OutOfMemeoryException),并且创建的文件是空的。

JRSwapFileVirtualizer的构造函数的第一个参数是在报表的各部分存储在虚拟内存(磁盘)之前将存储在主内存(RAM)中的最大报表页数。 因此,如果您的报告页面大小不超过10000页,那么您将无法将它们存储在虚拟内存中,即使您编写了虚拟器代码,您实际上并没有使用这种美观。

试试像,

 JRSwapFileVirtualizer virtualizer = null; virtualizer = new JRSwapFileVirtualizer(3, new JRSwapFile("F://", 2048, 1024), false); param.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); 

希望它有效:-)

干杯…