|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Pesaro
Messaggi: 590
|
[Java] Leggere un file di testo e savarne il contenuto in un array
Ciao a tutti avrei bisogno di una mano..
Devo leggere un file di testo e fino a li ci sono... poi devo spezzettarlo in tante stringhe ogni qualvolta incontro il ";" e anche quello riesco a farlo. L'unico problema è che non riesco a salvare queste stringhe in un array, perchè non so quanto sarà lungo, ma la dimensione varia e secondo di quante sottostringhe avrò nel file di testo... come posso fare? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2789
|
Devi per forza utilizzare un array classico o puoi usare strutture dati alternative? Nel primo caso puoi fare una funzione che ridimensioni un array, quello che farà questa funzione sarà creare un array più grande, copiarci i valori del vecchio array e poi sostituire il riferimento al primo array con il nuovo. Nel secondo caso invece puoi guardare sulla documentazione java le classi ArrayList o Vector
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2003
Città: Pesaro
Messaggi: 590
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
nn so se ho capito bene , ma se ti serve un array di stringhe questo dovrebbe andare bene
Codice:
FileReader fileReader = new FileReader();
BufferedReader fileBufereReader = new BufferedReader(fileReader );
ArrayList<String> blah = new ArrayList<String>();
String s = fileBufereReader .readLine();
while(s!=null){
blah.add(s);
s = fileBufereReader .readLine();
}
String [] arrayDiStringhe = blah .toArray(new String[0]);
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
oops scus ho capito male , tu voui dividere x ';' , non una stringa ogni riga
cmq una volta letto il file puoi fare Codice:
StringTokenizer tokens = new StringTokenizer(sorcio , ";");
int tokenCount = tokens.countTokens();
String [] arrayDiStringhe = new String [tokenCount];
for(int i = 0; i < tokenCount; i++){
arrayDiStringhe [i] = tokens.nextToken();
}
Codice:
ArrayList<String> blah = new ArrayList<String>(); blah.add(stringa); Codice:
String [] arrayDiStringhe = blah .toArray(new String[0]); Ultima modifica di vladix : 15-02-2008 alle 20:55. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Potresti usare la classe Scanner del package java.util (non l'ho mai usata, me l'hanno appena nominata, ma sembra fare al caso tuo).
Oppure, modificando leggermente la soluzione di vladix, supponendo di avere tutto il contenuto del file nella stringa "contenuto": Codice:
String[] arrayDiStringhe = contenuto.split(";");
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN Ultima modifica di Mixmar : 15-02-2008 alle 21:46. Motivo: Aggiunto link a javadoc di "Scanner" |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Sep 2003
Città: Pesaro
Messaggi: 590
|
Quote:
<entry>id=1;cognome=rossi;<entry>cognome=verdi;id=2;nome=carlo;<entry>id=1;AA=2004;<entry>id=3; tipologia=amministrativo;nome=mario;cognome=bianchi;<entry>id=2;dip=informatica;<entry>id=1; nome=mario;<entry>id=4;cognome=rossi;nome=paolo;<entry>id=5;cognome=elia;<entry>cognome=scassi; id=7;nome=simone;<entry>id=5;AA=2008;<entry>settore=web;id=2; Quello che vorrei fare è leggere il file utilizzando la classe Scanner e fin qui ci sono. Poi una volta letto il file vorrei memorizzare in un array ogni sottostringa che inizia con il separatore <entry>. Siccome a seconda della lunghezza del file posso avere moltissime entry, non so la lunghezza massima del mio array e quindi credo di dover usare Arraylist, ma non so come utilizzarla per memorizzare le sottostringhe a mano a mano che vengono lette dal file. Spero di essermi spiegato! |
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
Quote:
cmq tu hai deto che sai come leggere il file con scanner , e come "split"-arlo , quindi ti crei una array list Codice:
ArrayList<String> mioArraryDiStringhe = new ArrayList<String>(); Codice:
mioRaaryDiStringhe .add(sottoStringa); Codice:
String [] arrayDiStringhe = mioArraryDiStringhe.toArray(new String[0]); |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:14.




















