View Full Version : [JAVA] contare righe in un file
guinnerd
09-08-2007, 18:34
Salve, sapete se la libreria Java mette a disposizione un metodo che restituisce il numero di righe presenti in un file?
Dovrei ordinare, in ordine decrescente, un insieme di file in base alle righe di ciascuno. Mi suggerite un modo efficiente per farlo?
Grazie mille!
Salve, sapete se la libreria Java mette a disposizione un metodo che restituisce il numero di righe presenti in un file?No, non c'è.
Dovrei ordinare, in ordine decrescente, un insieme di file in base alle righe di ciascuno. Mi suggerite un modo efficiente per farlo?Per contare le righe è necessario leggerle tutte, ad esempio con un BufferedReader o con un Scanner (Java 5+), purché si usi il metodo per leggere una riga intera (readLine).
Per contare le righe è necessario leggerle tutte, ad esempio con un BufferedReader o con un Scanner (Java 5+), purché si usi il metodo per leggere una riga intera (readLine).
Se fossero linee di una lunghezza fissa (quindi una dimensione fissa in bytes) potresti dividere la dimensione totale per la dimensione della singola linea..ovviamente devi vedere che tipo di encoding hai sul file (un byte per carattere, o due, a seconda che sia UTF-8 o UTF-16).
Se fossero linee di una lunghezza fissa (quindi una dimensione fissa in bytes) potresti dividere la dimensione totale per la dimensione della singola linea..ovviamente devi vedere che tipo di encoding hai sul file (un byte per carattere, o due, a seconda che sia UTF-8 o UTF-16).Uhm ... troppo specifico e dipendente da conoscenze esatte e precise sul formato del file.
Io ne farei a meno....
Uhm ... troppo specifico e dipendente da conoscenze esatte e precise sul formato del file.
Io ne farei a meno....
Ok, ma se ha un progetto specifico con delle specifiche di progetto (:D), può anche approfittarne. Volendo può parametrizzare (mediante file di proprietà xml) il numero dei caratteri per linea e quant'altro debba essere configurabile nell'applicativo. Ovviamente non conoscendo l'applicativo, non sapendo che tipo di software sia (magari è un progetto universitario, magari è un editor di testo per una casa editrice, magari è un progetto TopSecret della NASA) non si può dire a priori quale sia la soluzione, io ho solo scritto che volendo potrebbe fare anche in quest'altro modo ;)
Se fossero linee di una lunghezza fissa (quindi una dimensione fissa in bytes) potresti dividere la dimensione totale per la dimensione della singola linea..ovviamente devi vedere che tipo di encoding hai sul file (un byte per carattere, o due, a seconda che sia UTF-8 o UTF-16). se il file è in UTF i caratteri non occuperanno 1 solo byte, ma un numero variabile da 1 a 4 per UTF-8 e 2 o 4 bytes per UTF-16 (appena controllato su Wikipedia :p). inoltre non c'è modo (non secondo lo standard Unicode) di capire l'encoding di un file di testo. solamente su Windows esiste la convenzione che i files codificati in UTF-8 devono cominciare con la sequenza EF BB BF, se non erro.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.