我试图逐行使用pdfbox阅读pdf文件,以便我可以将它与旧版本进行比较。
为此,我做了:
static String[][] SplitString_into_array(String string_to_split)
{
final int SIZE = 1495; //max size allowed in array
int number_arrays = string_to_split.length()/SIZE;
int start = 0;
int end = SIZE;
int max = string_to_split.length();
int i, j;
// Pdfs are very big, so i had to create a 2d array,
// where ROWS are the number of arrays to be created
// based on the size and COLS are the max size allowed.
String[][] pdf_final = new String[number_arrays][SIZE];
String[] pdf_split = new String[SIZE];
for(i = 0; i < pdf_final.length; i++)
{
String tmp = string_to_split.substring(start, end);
for(j = 0; j < pdf_final[i].length-1; j++)
{
pdf_split = tmp.split("\\r?\\n");
pdf_final[i][j] = pdf_split[j];
}
start = SIZE + 1;
end = SIZE + SIZE;
if(end > max)
{
end = max;
}
}
return pdf_final;
}
问题是我在执行操作时遇到错误超出绑定异常:
pdf_final[i][j] = pdf_split[j];
似乎J只达到I的最大尺寸,但我不知道为什么,因为两种尺寸都是正确定义的。
有人可以帮助我吗?
此致
答案 0 :(得分:0)
pdf_final[i].length
可能会超过pdf_split.length
。更确切地说:string_to_split.length()/SIZE > SIZE
。
对不起上面的回答是不正确的。可能是i
超出约束而不是j
对于大文件。
就像Jon Skeet所说,声明没有给你一个1495的数组:
pdf_split = tmp.split("\\r?\\n")