/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
BufferedReader..
Fra : holst


Dato : 14-12-00 13:48

Heh...

jeg har problemer med BufferedReader.
Jeg har en fil på x antal linier, som jeg vil gemme ned i et array. En linie
i hvert array-element!

Da jeg ikke kender antallet af linier i filen, bruger jeg først
BufferedReader til at tælle antallet af linier i filen for at kunne lave et
array passer perfekt til filen. Bagefter vil jeg så bruge den samme
BufferedReader til at indlæse filen linie for linie i dette array.

Problemet er bare, at Bufferedreader ikke nulstiller når jeg bruger den 2.
gang. Den fortsætter hvor den slap. Dvs. at hvis den først finder ud af at
der er 5 linier i filen, så vil den under indlæsningen af filen forsøge at
gemme linie 1 ned i array-element 6. Dette element findes ikke, da arrayet
kun er på 5 elementer. Den skulle jo egentlig helst starte forfra.

Hvad kan jeg gøre??

holst






 
 
Carsten (14-12-2000)
Kommentar
Fra : Carsten


Dato : 14-12-00 14:00

Nu ved jeg ikke hvordan du "genbruger" din BufferedReader, men hvis du ikke
laver en helt "new BufferedReader(...)", så er det klart, at det går galt.

Noget helt andet er at det er hamrende ineffektivt, at læse en disk-fil 2
gange blot for at kunne afgøre size af et memory-array. Jeg ville nok læse
filen ind i en Vector, og så lave array'et ud fra denne vektor bagefter. Det
er noget hurtigere at læse fra en Vector end det er fra en disk-fil - også
selvom filen formentlig bliver cached ved første læsning. Rent faktisk har
Vector en copyInto() metode, du kan bruge til at overføre data til dit array
(husk at allokere dette først).

Carsten

"holst" <holst@control.auc.dk> wrote in message
news:Cj3_5.12807$72.236556@twister.sunsite.auc.dk...
> Heh...
>
> jeg har problemer med BufferedReader.
> Jeg har en fil på x antal linier, som jeg vil gemme ned i et array. En
linie
> i hvert array-element!
>
> Da jeg ikke kender antallet af linier i filen, bruger jeg først
> BufferedReader til at tælle antallet af linier i filen for at kunne lave
et
> array passer perfekt til filen. Bagefter vil jeg så bruge den samme
> BufferedReader til at indlæse filen linie for linie i dette array.
>
> Problemet er bare, at Bufferedreader ikke nulstiller når jeg bruger den 2.
> gang. Den fortsætter hvor den slap. Dvs. at hvis den først finder ud af at
> der er 5 linier i filen, så vil den under indlæsningen af filen forsøge at
> gemme linie 1 ned i array-element 6. Dette element findes ikke, da arrayet
> kun er på 5 elementer. Den skulle jo egentlig helst starte forfra.
>
> Hvad kan jeg gøre??
>
> holst
>



Soren 'Disky' Reinke (14-12-2000)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 14-12-00 14:23


"Carsten" <carjak@wanadoo.dk> wrote in message
news:91ag94$6fi$1@news.inet.tele.dk...
> Nu ved jeg ikke hvordan du "genbruger" din BufferedReader, men hvis du
ikke
> laver en helt "new BufferedReader(...)", så er det klart, at det går galt.
>
> Noget helt andet er at det er hamrende ineffektivt, at læse en disk-fil 2
> gange blot for at kunne afgøre size af et memory-array. Jeg ville nok læse
> filen ind i en Vector, og så lave array'et ud fra denne vektor bagefter.
Det
> er noget hurtigere at læse fra en Vector end det er fra en disk-fil - også
> selvom filen formentlig bliver cached ved første læsning. Rent faktisk har
> Vector en copyInto() metode, du kan bruge til at overføre data til dit
array
> (husk at allokere dette først).

God ide, men jeg ville bruge en ArrayList istedet, den er hurtigere og
understøtte ListIterator

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



holst (14-12-2000)
Kommentar
Fra : holst


Dato : 14-12-00 16:01

Takker....det virker at lave en ny bufferedReader. Jeg tror dog at jeg
vælger at implementere din 2. løsning.

holst

"Carsten" <carjak@wanadoo.dk> wrote in message
news:91ag94$6fi$1@news.inet.tele.dk...
> Nu ved jeg ikke hvordan du "genbruger" din BufferedReader, men hvis du
ikke
> laver en helt "new BufferedReader(...)", så er det klart, at det går galt.
>
> Noget helt andet er at det er hamrende ineffektivt, at læse en disk-fil 2
> gange blot for at kunne afgøre size af et memory-array. Jeg ville nok læse
> filen ind i en Vector, og så lave array'et ud fra denne vektor bagefter.
Det
> er noget hurtigere at læse fra en Vector end det er fra en disk-fil - også
> selvom filen formentlig bliver cached ved første læsning. Rent faktisk har
> Vector en copyInto() metode, du kan bruge til at overføre data til dit
array
> (husk at allokere dette først).
>
> Carsten
>
> "holst" <holst@control.auc.dk> wrote in message
> news:Cj3_5.12807$72.236556@twister.sunsite.auc.dk...
> > Heh...
> >
> > jeg har problemer med BufferedReader.
> > Jeg har en fil på x antal linier, som jeg vil gemme ned i et array. En
> linie
> > i hvert array-element!
> >
> > Da jeg ikke kender antallet af linier i filen, bruger jeg først
> > BufferedReader til at tælle antallet af linier i filen for at kunne lave
> et
> > array passer perfekt til filen. Bagefter vil jeg så bruge den samme
> > BufferedReader til at indlæse filen linie for linie i dette array.
> >
> > Problemet er bare, at Bufferedreader ikke nulstiller når jeg bruger den
2.
> > gang. Den fortsætter hvor den slap. Dvs. at hvis den først finder ud af
at
> > der er 5 linier i filen, så vil den under indlæsningen af filen forsøge
at
> > gemme linie 1 ned i array-element 6. Dette element findes ikke, da
arrayet
> > kun er på 5 elementer. Den skulle jo egentlig helst starte forfra.
> >
> > Hvad kan jeg gøre??
> >
> > holst
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste