Manière plus rapide de lire le fichier

Je suis en train de travailler sur un programme qui a environ 400 fichiers d'entrée et d'environ 40 fichiers de sortie.
C'est simple: il lit chaque fichier d'entrée et génère un nouveau fichier, mais beaucoup plus grand(basé sur un algorithme).

Je suis en utilisant la méthode read() de BufferedReader:

String encoding ="ISO-8859-1";
FileInputStream fis = new FileInputStream(nextFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, encoding));
char[] buffer = new char[8192] ;

De lire les fichiers d'entrée, je suis en utilisant ceci:

private String getNextBlock() throws IOException{
    boolean isNewFile = false;

    int n = reader.read(buffer, 0, buffer.length);
    if(n == -1) {
        return null;
    } else {
        return new String(buffer,0,n);
    }
}

Chaque bloc, je suis en train de faire quelques vérifications (comme le fait de regarder une chaîne de caractères à l'intérieur du bloc) et puis je suis en train d'écrire dans un fichier:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
        new FileOutputStream("fileName"), encoding));

writer.write(textToWrite);

Le problème est que cela prend environ 12 minutes.
J'essaie de trouver quelque chose d'autre beaucoup plus rapide.
Quelqu'un a une idée de quelque chose de mieux?

Grâce.

source d'informationauteur CC.