In my app I display pdf’s using a ByteArrayResource.
This was working fine untill I started working with bigger files. The conversion to ByteArray keeps giving me an out of memory error.
This is how I do it at the moment:
File myPdf=new File(thePath);
FileInputStream fin = new FileInputStream(myPdf);
final byte fileContent[] = new byte[(int)myPdf.length()];
fin.read(fileContent);
fin.close();
ResourceReference rr = new ResourceReference(dePdf.getName()) {
@Override
public IResource getResource() {
return new ByteArrayResource("Application/pdf", fileContent);
}
};
if (rr.canBeRegistered()) {
getApplication().getResourceReferenceRegistry().registerResourceReference(rr);
}
return wmc;
Is there a better way to display a big file?
Try using ResourceStreamResource and FileResourceStream: