PDA

View Full Version : [JAVA] BufferReader


alessia86
19-09-2009, 18:27
il bufferedReader serve per elaborare un input di testo,giusto? che tramite il suo ciclo con il metodo readLine legge tutte le righr di un file..Ma in sostanza perchè usiamo un bufferedReader? Non ho capito bene cosa è ...lo posso immaginare come una specie di "lista" che immagazzina dati?

Energy++
19-09-2009, 18:33
letto la descrizione sulla javadoc?

http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html


:)

alessia86
19-09-2009, 18:37
Si..ho letto,ma non ho capito bene..

Rsk
19-09-2009, 18:47
sai cosa è un buffer? (http://it.wikipedia.org/wiki/Buffer_%28informatica%29)
Ecco BufferedReader utilizza appunto un buffer per eseguire una lettura efficiente dei file

fero86
19-09-2009, 21:01
sai cosa è un buffer? (http://it.wikipedia.org/wiki/Buffer_%28informatica%29)
Ecco BufferedReader utilizza appunto un buffer per eseguire una lettura efficiente dei file assolutamente no, il motivo per cui viene usato un buffer é che il BufferedReader deve restituire una linea di testo per volta e quindi deve bufferizzare tutti i caratteri finché non trova un separatore di linea. le questioni di efficienza non c'entrano, anche perché é impossibile parlarne senza conoscere (per definizione) la natura del mezzo di I/O sottostante.

fero86
19-09-2009, 21:04
il bufferedReader serve per elaborare un input di testo,giusto? che tramite il suo ciclo con il metodo readLine legge tutte le righr di un file..Ma in sostanza perchè usiamo un bufferedReader? Non ho capito bene cosa è ...lo posso immaginare come una specie di "lista" che immagazzina dati? é un'implementazione di Reader che fornisce un metodo aggiuntivo readLine che permette di leggere una linea di testo per volta; se non ci fosse quel metodo dovresti leggere un carattere per volta, bufferizzare i caratteri in un array dinamico ed implementare un algoritmo per il riconoscimento della sequenza di fine linea.

fero86
19-09-2009, 21:06
letto la descrizione sulla javadoc?

http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html


:) quando si forniscono riferimenti sarebbe bene evitare di prelevarli scegliendo la prima minchiata sputata da Google :asd:
quel link é datato, questa é la versione "stabile" piu recente:
http://java.sun.com/javase/6/docs/api/index.html?java/io/BufferedReader.html

Energy++
19-09-2009, 21:17
quando si forniscono riferimenti sarebbe bene evitare di prelevarli scegliendo la prima minchiata sputata da Google :asd:
quel link é datato, questa é la versione "stabile" piu recente:
http://java.sun.com/javase/6/docs/api/index.html?java/io/BufferedReader.html

su su stiamo calmi, nei due doc (quello postato da me e quello postato da te) non cambia quasi niente e per quello che lei cercava (una descrizione?) andava bene qualunque.

facciamo meno gli sbruffoni la prossima volta

ps. mi congratulo per l'uso delle parolacce su un forum pubblico

PGI-Bis
19-09-2009, 23:09
Come detto da Rsk, BufferedReader usa un buffer per esclusive ragioni di efficienza. Lo dice la documentazione ("buffering characters so as to provide for the efficient reading of characters, arrays, and lines") e lo dice il codice di BufferedReader - dove readLine non legge un carattere alla volta ma carica il buffer e poi lo esamina accumulando i parziali in un secondo buffer.

nuovoUtente86
19-09-2009, 23:11
assolutamente no, il motivo per cui viene usato un buffer é che il BufferedReader deve restituire una linea di testo per volta e quindi deve bufferizzare tutti i caratteri finché non trova un separatore di linea. le questioni di efficienza non c'entrano, anche perché é impossibile parlarne senza conoscere (per definizione) la natura del mezzo di I/O sottostante.

Un buffer per definizione ha il compito, attraverso la prememorizzazione di una quantità stabilita di dati, di far lavorare in maniera quasi trasparente dispositivi a velocità differenti.
Nel caso del wrapper BufferedReader, esso ha il compito di migliorare le performance, rispetto agli altri reader, delle letture da uno input-stream, appunto bufferizzandole.
Il fatto che poi, operando da tipo wrapper/decorator, venga aggiunta l' importante funzione readLine() è molto utile ma non è legato all' essenza stessa di buffer e non è per questo che si utilizza un BufferedReader.