Le moyen le plus rapide pour lire fichier texte ligne par ligne en Java

Pour le journal le traitement de ma demande doit lire des fichiers texte ligne par ligne.
J'ai d'abord utilisé la fonction readLine() de BufferedReader mais j'ai lu sur internet que BufferedReader est lent lors de la lecture de fichiers.
Par la suite j'ai essayé d'utiliser FileInputStream avec un FileChannel et MappedByteBuffer mais dans ce cas il n'y a pas de fonction similaire à readLine() donc je suis à la recherche de mon texte pour un saut de ligne et processus:

    try {
        FileInputStream f = new FileInputStream(file);
        FileChannel ch = f.getChannel( );
        MappedByteBuffer mb = ch.map(FileChannel.MapMode.READ_ONLY, 0L, ch.size());
        byte[] bytes = new byte[1024];
        int i = 0;
        while (mb.hasRemaining()) {
            byte get = mb.get();
            if(get == '\n') {
                if(ra.run(new String(bytes)))
                    cnt++;
                for(int j = 0; j<=i; j++)
                    bytes[j] = 0;
                i = 0;
            }
            else
                bytes[i++] = get;
        }
    } catch(Exception ex) {
        ex.printStackTrace();
    }

Je sais que ce n'est probablement pas une bonne façon de mettre en œuvre, mais quand je viens de lire le texte du fichier, en octets, il est 3 fois plus rapide en utilisant BufferedReader mais en l'appelant new String(bytes) crée une nouvelle Chaîne et rend le programme encore plus lent que lors de l'utilisation d'un BufferedReader.
Donc je voulais vous demander quel est le moyen le plus rapide pour lire un fichier texte ligne par ligne? Certains disent BufferedReader est la seule solution à ce problème.

P. S.: ra est une instance de RunAutomaton du dk.brics.Automate de la bibliothèque.

est BufferedReader vraiment trop lent pour vos besoins? Il est probablement l'un des plus propres, plus maintenable solutions si vous devez coder en Java.
Si BufferedReader est vraiment trop lent pour votre application, vous devriez penser à pas à l'aide de java ou d'autres langages managés ... (Mais je doute que cela soit le cas)
Aaron's réponse est sur le point d'être supprimé, comme un lien seule réponse, donc je vais le mettre ici dans un commentaire: "Check ce lien. Il contient la vitesse de la comparaison de diverses méthodes."

OriginalL'auteur Yoni | 2011-04-27