View Full Version : [java] lettore
pesciolinaPazza
05-11-2008, 12:52
Salve a tutti,
devo creare un lettore di un file.txt su java.
avrei bisogno di un metodo che conta le righe totali del mio file e poi avrei bisogno di invocarne solo alcune(per esempio come faccio a considerare solo la riga 15 e non le precedenti 14?).
grazie anticipatamente per le risposte,
grazie mille a tutti,
PesciolinaPazza
guardati la classe Scanner (http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html), secondo me potrebbe esserti utile..
Oceans11
05-11-2008, 23:26
Oppure usi semplicemente un FileReader agganciato ad un BufferedReader, così:
BufferedReader br = new BufferedReader(new FileReader("nomeDelFile"));
e poi leggi in un bel while, conti le righe lette e magari salvi in un ArrayList di stringhe, così poi da accedere alla i-esima riga, piuttosto che alla j-esima.
qui (http://java.sun.com/docs/books/tutorial/essential/io/examples/CopyLines.java) trovi un esempio, tratto dal tutorial della Sun.
pesciolinaPazza
06-11-2008, 08:45
grazie mille!
siete stati davvero gentilissimi!
oggi provo con entrambe le opzioni e vi faccio sapere!
grazie mille ancora!
pesciolinaPazza
pesciolinaPazza
06-11-2008, 18:31
scusatemi, vorrei chiedervi, se possibile, un'altra informazione.
se dovessi leggere con il metodo split un file cosi' fatto:
informazioneGenerale ciao
Spettro (15, 23)
GradoSeparazione 3
GradoColore 2
facendo una:
for( ...)
if(la prima parola è spettro---> splitta dividendo "(" e ", " -->in modo da ottenere 15 e 23
if(la prima parola è GradoSeparazione--> esegui operazioni)
if (la prima parola è GradoColore--> esegui operazioni)
come faccio?
grazie a tutti!
PesciolinaPazza
Oceans11
06-11-2008, 18:54
Devi fare proprio come hai detto...split è un metodo della classe String
trovi la definizione qui (http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String))
quindi farai: (chiamiamo line ogni singola riga letta dal file)
if(line.split(" ")[0].equals("Spettro")) {
// prendo la sottostringa tra le parentesi (escluse)
String sub = line.substring(line.indexOf(" ") + 2, line.length() -1);
String numero1 = sub.split(", ")[0];
String numero2 = sub.split(", ")[1];
}
e così via dicendo...
pesciolinaPazza
06-11-2008, 20:36
grazie millissimo!!!
pesciolinaPazza
16-11-2008, 13:37
scusate se disturbo così tanto ma giuro che sono in procinto di finire la tesi e non romperò più..
-sto creando un lettore in cui "rappresento" dei grafi con nodi e archi
-ci sono vari siti (A,B,C) e rispetto ad alcune istruzioni incremento il numero degli archi e dei nodi in ciascun sito.
-ho creato un array contenente nodi e archi per ciascun sito.
quando eseguo l'istruzione"crea un nuovo nodo" come faccio a creare un contatore che mi numeri in ordine sequenziale, a prescindere dal sito, i nodi?
grazie tante,
pesciolinaPazza
Oceans11
16-11-2008, 15:56
scusate se disturbo così tanto ma giuro che sono in procinto di finire la tesi e non romperò più..
-sto creando un lettore in cui "rappresento" dei grafi con nodi e archi
-ci sono vari siti (A,B,C) e rispetto ad alcune istruzioni incremento il numero degli archi e dei nodi in ciascun sito.
-ho creato un array contenente nodi e archi per ciascun sito.
quando eseguo l'istruzione"crea un nuovo nodo" come faccio a creare un contatore che mi numeri in ordine sequenziale, a prescindere dal sito, i nodi?
grazie tante,
pesciolinaPazza
Dichiari una variabile "globale" e statica, che incrementi quando hai creato un nuovo nodo.
Questa è la dichiarazione/inizializzazione:
private static int contatore = 0
E questo è l'incremento nel metodo crea un nuovo nodo:
{
// qui crei il nuovo nodo, poi quando hai finito fai:
contatore++;
}
pesciolinaPazza
19-11-2008, 13:12
..scusatemi, l'ultimissima cosa:
come faccio a creare mediante arrayList delle celle che contengono al loro interno un array ListaNodi e uno ListaArchi???
Grazie!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.