我试图使用字节数组读取大量的pdf文件, 这是我的代码。
String RESULT "D/new/certficateVisualFinal.pdf";
try {
FileInputStream fileInputStream=null;
File file = new File(RESULT);
byte[] bFile = new byte[(int) file.length()];
//convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
reader = new PdfReader(bFile);
pdfStamper = new PdfStamper(reader, new FileOutputStream(outPut));
pdfStamper.setOutlines(outlineVisual);
pdfStamper.setFormFlattening(true);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
但是在尝试
时我得到了一个OutOfMemoryErrofileInputStream.read(bFile);
这是错误
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:220)
请帮助我。谢谢。
答案 0 :(得分:3)
根本不使用字节数组。 PdfReader
有一个带有InputStream
参数的构造函数,因此您可以直接将FileInputStream
传递给该参数。