Ajuda para abrir varios arquivos pdf editaveis e jogar as string num txt

Pessoal oque tenho que fazer é o seguinte, tenho uma pasta predefina onde vão ser salvos diariamente varios pdfs editaveis , oque tenho que fazer é pegar o texto dos pdfs e jogar cada um em um notepad diferente, Consegui fazer usando a classe pdfparser porem só consigo se especificar qual é o arquivo e ele salva em um unico pdf, Gostaria que para cada arquivo que tivesse na pasta gera-se um novo documento do tipo txt. segue meu código!

package teste;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;


public class PdfParser {

public static void main(String[] args) {

PdfParser pdf = new PdfParser();
pdf.setEnderecoRecurso("C:\\NNpdf\\luuuuu0001(1).pdf");

String retorno = pdf.getConteudo();

FileWriter x;
try {
x = new FileWriter("C:\\NNpdf\\teste.txt", false);

x.write(retorno);
x.close();

FileInputStream stream = new FileInputStream("C:\\NNpdf\\teste.txt");

StringBuilder txt = new StringBuilder();
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(streamReader);
String line = null;

while ((line = reader.readLine()) != null) {

txt.append(line);
txt.append("\n");
if (line.contains(" ")) {
txt.append(line.replaceAll(" ", ";"));
txt.append("\n");
}
}

System.out.println(txt);


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private String enderecoRecurso;

public void setEnderecoRecurso(String enderecoRecurso) {
this.enderecoRecurso = enderecoRecurso; // endereço dos arquivos
}

public String getConteudo() {

File f = new File(this.enderecoRecurso);
FileInputStream is = null;
try {
is = new FileInputStream(f);
} catch (IOException e) {
System.out.println("ERRO: " + e.getMessage());
return null;
}

PDDocument pdfDocument = null;
try {
PDFParser parser = new PDFParser(is);
parser.parse();
pdfDocument = parser.getPDDocument();
PDFTextStripper stripper = new PDFTextStripper();
return stripper.getText(pdfDocument);
} catch (IOException e) {
return "ERRO: Não é possível abrir a stream" + e.getLocalizedMessage();
} catch (Throwable e) {
// Fazemos um catch, uma vez que precisamos de fechar o recurso
return "ERRO: Um erro ocorreu enquanto tentava obter o conteúdo do PDF "
+ e.getLocalizedMessage()+" Causa "+e.getCause();
} finally {
if (pdfDocument != null) {
try {
pdfDocument.close();
} catch (IOException e) {
return "ERRO: Não foi possível fechar o PDF. " + e.getLocalizedMessage()+" Causa "+e.getCause();
}
}
}
}
} 

Veja os comentários e vê se ajuda. Não testei e nem tentei compilar. Só tentei elaborar a lógica.
O melhor a fazer é dar uma estudada em Orientação ao Objeto. Seu programa está muito estruturado, tem método que lê arquivo e escreve outro arquivo ao mesmo tempo. Tente separar esses métodos.

[code]
public class PdfParser {

public static void main(String[] args) { 

	PdfParser pdf = new PdfParser(); 
	// diretório
	File dir = new File("C:\\NNpdf\\");
	// Lista os arquivos do diretório
	for(File arq : dir.listFiles()) {
		// Seta o endereço do arquivo
		pdf.setEnderecoRecurso(arq.getCanonicalPath());
		String retorno = pdf.getConteudo(); 
		/* 

		 * 
		 */ 
		FileWriter x; 
		try { 
			//Gera um novo arquivo txt, mantendo o nome do pdf para fazer referência do arquivo migrado
			String arquivoTxt = arq.getName()+".txt";
			x = new FileWriter(arquivoTxt, false); 

			x.write(retorno); 
			x.close(); 


			FileInputStream stream = new FileInputStream(arquivoTxt); 

			StringBuilder txt = new StringBuilder(); 
			InputStreamReader streamReader = new InputStreamReader(stream); 
			BufferedReader reader = new BufferedReader(streamReader); 
			String line = null; 

			while ((line = reader.readLine()) != null) { 

				txt.append(line); 
				txt.append("\n"); 
				if (line.contains(" ")) { 
					txt.append(line.replaceAll(" ", ";")); 
					txt.append("\n"); 
				} 
			} 

			System.out.println(txt); 
	}

	} catch (IOException e) { 
		// TODO Auto-generated catch block 
		e.printStackTrace(); 
	} 

} 

private String enderecoRecurso; 

public void setEnderecoRecurso(String enderecoRecurso) { 
	this.enderecoRecurso = enderecoRecurso; // endereço dos arquivos 
} 

public String getConteudo() { 

	File f = new File(this.enderecoRecurso); 
	FileInputStream is = null; 
	try { 
		is = new FileInputStream(f); 
	} catch (IOException e) { 
		System.out.println("ERRO: " + e.getMessage()); 
		return null; 
	} 

	PDDocument pdfDocument = null; 
	try { 
		PDFParser parser = new PDFParser(is); 
		parser.parse(); 
		pdfDocument = parser.getPDDocument(); 
		PDFTextStripper stripper = new PDFTextStripper(); 
		return stripper.getText(pdfDocument); 
	} catch (IOException e) { 
		return "ERRO: Não é possível abrir a stream" + e.getLocalizedMessage(); 
	} catch (Throwable e) { 
		// Fazemos um catch, uma vez que precisamos de fechar o recurso 
		return "ERRO: Um erro ocorreu enquanto tentava obter o conteúdo do PDF " 
		+ e.getLocalizedMessage()+" Causa "+e.getCause(); 
	} finally { 
		if (pdfDocument != null) { 
			try { 
				pdfDocument.close(); 
			} catch (IOException e) { 
				return "ERRO: Não foi possível fechar o PDF. " + e.getLocalizedMessage()+" Causa "+e.getCause(); 
			} 
		} 
	} 
} 

}[/code]

não funcionou amigo ficou assim o codigo:

[code]package teste;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;

public class PdfParser {

public static void main(String[] args) {   

    PdfParser pdf = new PdfParser();   
    // diretório  
    File dir = new File("C:\\NNpdf\\");  
    // Lista os arquivos do diretório  
    for(File arq : dir.listFiles()) {  
        // Seta o endereço do arquivo  
        try {
			pdf.setEnderecoRecurso(arq.getCanonicalPath());
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}  
        String retorno = pdf.getConteudo();   
        /*  

         *  
         */   
        FileWriter x;   
        try {   
            //Gera um novo arquivo txt, mantendo o nome do pdf para fazer referência do arquivo migrado  
            String arquivoTxt = arq.getName()+".txt";  
            x = new FileWriter(arquivoTxt, false);   

            x.write(retorno);   
            x.close();   


            FileInputStream stream = new FileInputStream(arquivoTxt);   

            StringBuilder txt = new StringBuilder();   
            InputStreamReader streamReader = new InputStreamReader(stream);   
            BufferedReader reader = new BufferedReader(streamReader);   
            String line = null;   

            while ((line = reader.readLine()) != null) {   

                txt.append(line);   
                txt.append("\n");   
                if (line.contains(" ")) {   
                    txt.append(line.replaceAll(" ", ";"));   
                    txt.append("\n");   
                }   
            }   

            System.out.println(txt);   
    }  

     catch (IOException e) {   
        // TODO Auto-generated catch block   
        e.printStackTrace();   
     }
    }
}



private String enderecoRecurso;   

public void setEnderecoRecurso(String enderecoRecurso) {   
    this.enderecoRecurso = enderecoRecurso; // endereço dos arquivos   
}   

public String getConteudo() {   

    File f = new File(this.enderecoRecurso);   
    FileInputStream is = null;   
    try {   
        is = new FileInputStream(f);   
    } catch (IOException e) {   
        System.out.println("ERRO: " + e.getMessage());   
        return null;   
    }   

    PDDocument pdfDocument = null;   
    try {   
        PDFParser parser = new PDFParser(is);   
        parser.parse();   
        pdfDocument = parser.getPDDocument();   
        PDFTextStripper stripper = new PDFTextStripper();   
        return stripper.getText(pdfDocument);   
    } catch (IOException e) {   
        return "ERRO: Não é possível abrir a stream" + e.getLocalizedMessage();   
    } catch (Throwable e) {   
        // Fazemos um catch, uma vez que precisamos de fechar o recurso   
        return "ERRO: Um erro ocorreu enquanto tentava obter o conteúdo do PDF "   
        + e.getLocalizedMessage()+" Causa "+e.getCause();   
    } finally {   
        if (pdfDocument != null) {   
            try {   
                pdfDocument.close();   
            } catch (IOException e) {   
                return "ERRO: Não foi possível fechar o PDF. " + e.getLocalizedMessage()+" Causa "+e.getCause();   
            }   
        }   
    }   
}   

} [/code]

Obs: não está jogando a string do pdf no texto nem gerando um arquivo de texto para cada pdf.

Ele esta abrindo todos os arquivos porem não esta salvando cada arquivo em um .txt

Correção então:

// Seta o endereço do arquivo  
pdf.setEnderecoRecurso(arq.getPath());  
String retorno = pdf.getConteudo();   
String arquivoTxt = arq.getPath()+".txt";