Salve a tutti,
sono una neofita di java (ho sempre fatto programmazione strutturata e ho cominciato a studiare java da un mese circa) però, poichè mi serve per la tesi, devo imparare a leggere da file una serie di informazioni per poi poterle elaborare e riscrivere su un altro file. Il mio problema è il seguente: dispongo di un'infinità di file .gz, tutti con la stessa struttura, contenenti dei valori che voglio estrarre e salvare. Tuttavia i dati non risultano essere disposti tutti allo stesso modo... Ora cerco di spiegare il problema:

Sulla prima riga compaiono solo 3 numeri uno di seguito l'altro seguiti da 3 parole (che in pratica mi dicono cosa sono questi 3 numeri) separate da virgola. In questa riga lo spazio tra questi dati non è sempre uguale. Questi 3 numeri li devo salvare in 3 variabili diverse tra loro.

Nella seconda riga, dopo un paio di spazi, ho un numero da leggere (supponiamo 99) che mi dice quanti sono i valori successivi da memorizzare e dopo qualche spazio ho 4 stringhe che non voglio leggere.

Dalla terza riga in poi compaiono i valori che mi interessano divisi in tre categorie che si susseguono (cioè se ho 99 valori avrò 33 valori categoria a, 33 valori cat b e 33 cat c). Sono uno di seguito l'altro separati da uno spazio e la categoria a è disposta su 4 colonne mentre la b e la c su 6. Questi numeri li devo salvare in 3 vettori diversi (in questo esempio di 33 posti ciascuno) perchè sono 3 cose diverse. In sintesi ho (i miei commenti alla riga li metto dopo //)

111 222 333 nome1, nome2, nome3
444 nome 4
555 555 555 555
555 555 555 555
...
555 555 // la riga qui finisce cosi e finisce anche la categoria1
666 666 666 666 666 666
666 666 666 666 666 666
...
666 666 666 777 777 777 // il punto in cui cambia cat non è chiaro perchè sono numeri simili
777 777 777 777 777 777
...
777 777

Alla fine dovrò avere: var1=111, var2=222, var3=333, numero_punti=444

vet[444]=555, vet[444]=666, vet[444]=777

Ho supposto che si potesse applicare uno string tokenizer alle prime due rige convertendo i numeri in numeri (alcuni sono interi, double e tutti gli altri float) e tralasciando le stringhe, e una volta conosciuto il numero di punti fare 3 cicli for in cui, sempre usando il tokenizer potessi salvarmi questi 3 vettori. In linea teorica credo sia questo che si deve fare, ma praticamente non so come metterci mano!!!In più al momento non mi funziona neppure il neatbeans sotto windows (non mi fornisce output)!!! Avevo letto dell'istruzione arraylist, ma potrebbe essere utile nel mio caso? Se si come? Il più grosso problema è cercare di capire dove finisce ogni categoria di dati perchè il numero di punti è grandissimo (circa 50000), ma non è lo stesso tra file e file.

Ogni consiglio e/o aiuto è ben accetto!!!