Manera más rápida de leer el archivo

Estoy trabajando en un programa que tiene unos 400 archivos de entrada y unos 40 archivos de salida. Es simple: lee cada archivo de entrada y genera un archivo nuevo pero mucho más grande (basado en un algoritmo).

Estoy usando el método 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] ;

Para leer los archivos de entrada estoy usando esto:

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);
    }
}

Con cada bloque estoy haciendo algunas verificaciones (como mirar una cadena dentro del bloque) y luego lo escribo en un archivo:

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

writer.write(textToWrite);

El problema es que tarda unos 12 minutos. Estoy tratando de encontrar algo más mucho más rápido. ¿Alguien tiene alguna idea sobre algo mejor?

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta