[ Texas Instruments @ 03.06.2010. 00:00 ] @
Koristim klasu Scanner da bih čitao liniju po liniju iz ulaznog tekstualnog fajla. E sad, pošto mi treba da odredim broj nekih promenljivih u samom tekstu da bih znao koliko tačno ulančanih listi stringova da kreiram, trebalo bi da 2 puta prođem kroz fajl. Ok, prvi put kad prođem i odredim taj broj sve je u redu, ali kako sada da ponovo prođem kroz fajl?
Code:


fr = new FileReader("C:\\ulaz.txt");
...

Scanner s1 = new Scanner(fr);
while(s1.hasNextLine()) {
  String p = s1.nextLine();
  if(p.contains(...)) temp++;
}



Kada sad pokušam da napravim novu instancu Scanner nad ovim fr, on je prazan. Može li neka pomoć oko ovoga? Ili neko pametnije rešenje.
[ dule_ns @ 03.06.2010. 09:12 ] @
Pa u svakom slučaju možeš stringove koje dobijaš da upisuješ u neku listu i drugi put da prođeš kroz tu listu. Ali, ja stvarno nisam shvatio šta ti treba da uradiš i nije mi jasno za šta ti trebaju 2 prolaza.
[ Texas Instruments @ 03.06.2010. 18:35 ] @
Ok, to sam i ja pomislio da radim. Samo šta ako taj ulazni fajl bude prevelik.
Recimo da mi treba da određene delove iz tog teksta smeštam u odvojene liste stringova.
Primer da imam ulazni tekst fajl koji sadrži nešto ovako
Code:

POČETAK ZAPISA
 tekst
 tekst
 ...
 tekst
KRAJ ZAPISA
POČETAK ZAPISA
 tekst
 tekst
 ...
 tekst
KRAJ ZAPISA
 ...

i sad hoću da prođem kroz taj fajl jednom da bih prebrojao koliko ima tih zapisa da bih znao koliko listi mi treba.
A to je zato što sam pravio niz ulančanih listi stingova, a za to mi treba poznat broj unapred, temp, koliko ima tih zapisa.
Code:

List<String>[] listArray = (LinkedList<String>[]) new LinkedList[temp];
for(int i=0; i<temp; i++) listArray[i] = new LinkedList<String>();


Ima li neko predlog za jednostavnije rešenje, kako da smeštam te zapise u odvojene liste?

[Ovu poruku je menjao Texas Instruments dana 03.06.2010. u 21:13 GMT+1]
[ dule_ns @ 04.06.2010. 09:04 ] @
OK, onda imaš dva rešenja.
Prvi je sa dva prolaza, tj posle prvog zatvori Scanner i FileReader (close() metoda) pa ih ponovo instanciraj (možeš da koristiš iste promenjive).

Drugi je da koristiš listu listi, pa na kraju ako ti baš treba niz listi ti prebaciš u to.


Malo gruba rešenja, ali mislim da će raditi.