Maison >Java >javaDidacticiel >Comment puis-je compter efficacement les lignes dans un gros fichier Java ?
Compter efficacement les lignes dans un fichier en Java
Problème :
Lorsque vous travaillez avec de grands fichiers de données, il est souvent nécessaire de déterminer le nombre de lignes du fichier. Bien qu'il soit possible de lire le fichier ligne par ligne jusqu'à la fin, cette méthode peut s'avérer chronophage et inefficace.
Solution :
Une solution plus efficace Une façon de compter le nombre de lignes dans un fichier en Java est d'utiliser le code suivant :
public static int countLines(String filename) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(filename)); try { byte[] c = new byte[1024]; int readChars = is.read(c); if (readChars == -1) { // bail out if nothing to read return 0; } // make it easy for the optimizer to tune this loop int count = 0; while (readChars == 1024) { for (int i = 0; i < 1024;) { if (c[i++] == '\n') { ++count; } } readChars = is.read(c); } // count remaining characters while (readChars != -1) { for (int i = 0; i < readChars; ++i) { if (c[i] == '\n') { ++count; } } readChars = is.read(c); } return count == 0 ? 1 : count; } finally { is.close(); } }
Ce code est nettement plus rapide que l'approche naïve consistant à lire la ligne du fichier en ligne, en particulier pour les gros fichiers. L'utilisation d'un flux d'entrée mis en mémoire tampon et de la boucle optimisée permettent de traiter efficacement les données du fichier et minimisent les opérations de lecture inutiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!