Estou pegando 2 arquivos que estão na minha pasta e estou precisando retornar o conteúdo desses 2 arquivos, não sei o motivo mais estou recebendo como retorno só um conteúdo, podem me ajudar?
public String pdfLeitor() {
String[] string = null;
String arquivos = null;
File file = new File("C:\\Users\\Ruben\\Desktop\\teste\\");
File afile[] = file.listFiles();
for (int i = 0; i < afile.length; i++) {
string = new String[afile.length];
string[i] = afile[i].toString();
arquivos = string[i];
}
String texto = null;
for (int i = 0; i < afile.length; i++) {
try {
PdfReader reader = new PdfReader(arquivos);
texto = PdfTextExtractor.getTextFromPage(reader, 1);
} catch (IOException e) {
e.getStackTrace();
}
}
return texto;
}
É que você está criando um novo array de String a cada iteração
Declare a variavel “reader” fora do for e dentro do for você da o valor “new PdfReader(arquivos)” , lembrando que a variavel texto é uma string, criando um valor diferente pra ela a cada iteração, tente procurar informações sobre ArrayList, funciona igual o vetor mas a diferença é que vc pode adicionar posiçoes a qualquer momento, nao trabalha com um tamanho especifico.
modelo ArrayList:
ArrayList<String> arrayTexto = new ArrayList<>();
para adicionar algo
arrayTexto.add("String");
para retornar (exemplo com print)
System.out.println(arrayTexto.get(0));
File file = new File("C:\\Users\\Ruben\\Desktop\\teste\\");
File[] afile = file.listFiles();
PdfReader reader;
for(File arq : afile) {
reader = new PdfReader(arq.getCanonicalPath());
}
Desta forma pode usar o reader de cada arquivo.