Mostra risultati da 1 a 4 di 4

Discussione: tornare all'inzio dopo aver letto il file

  1. #1
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Località
    Varese
    Messaggi
    160
    Grazie dati 
    3
    Grazie ricevuti 
    28
    Ringraziato in
    21 post

    tornare all'inzio dopo aver letto il file

    Ho la necessità di leggere il file piu volte....
    Ho il seguente codice:
    Codice:
    Only registered members can view code.
    Il file devo scorrerlo piu volte..come faccio a riposizionarmi a inizio file dopo averlo letto la prima volta?

    Grazie

    --- Post unito in modo automatico ---

    risolto con la classe RandomAccessFileVolevo sapere se era possibile con burredREader?

  2. # ADS
    Google Adsense Circuito Adsense
    Data registrazione
    da sempre
    Località
    mondo google
    Messaggi
    molti
     
  3. #2
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,019
    Grazie dati 
    4,805
    Grazie ricevuti 
    2,590
    Ringraziato in
    2,189 post

    Riferimento: tornare all'inzio dopo aver letto il file



    Non so se sia l'approccio giusto, ma io di solito ricreo semplicemente l'oggetto bufferedReader da capo ogni volta.

    Ad esempio con un metodo del genere:

    Codice PHP:
    Only registered members can view PHP Code
    Anche se di solito preferisco usare un timer al posto del ciclo while, così da poter gestire una riga per volta invece di immagazzinarle tutte.
    Poi magari creo un metodo reset() personalizzato che si occupa di ricreare l'oggetto BufferedReader da capo.

    Codice PHP:
    Only registered members can view PHP Code
    (ps: quando crei un nuovo oggetto in una var esistente, quello precedente viene perso e quindi ripulito dalla gc).

    In alternativa ci sarebbe il metodo reset(), ma necessita prima del metodo mark(int readAheadLimit), perché ritorna alla linea su cui è stato chiamato quest'ultimo.
    Ultima modifica di Andy86; 12-04-11 alle 11: 52. Motivo: Aggiunto ps
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

  4. #3
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Località
    Varese
    Messaggi
    160
    Grazie dati 
    3
    Grazie ricevuti 
    28
    Ringraziato in
    21 post

    Riferimento: tornare all'inzio dopo aver letto il file

    in che senso preferisci usare un timer??
    Quindi se faccio mark(0);posso usare il metodo reset ??

  5. #4
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,019
    Grazie dati 
    4,805
    Grazie ricevuti 
    2,590
    Ringraziato in
    2,189 post

    Riferimento: tornare all'inzio dopo aver letto il file



    Quindi se faccio mark(0);posso usare il metodo reset ??
    Non proprio, ma leggersi un po' la documentazione?
    Il parametro che passi a mark(int) dice al metodo quanti caratteri possono essere letti prima che scada.
    Cioè, se tu metti 1000 (mille), dopo che saranno stati letti mille caratteri il reset() non funzionerà più.
    Per quanto riguarda il punto in cui viene piazzato il mark(int), corrisponde al punto in cui ti trovi quando lo chiami.

    Quindi dovresti chiamarlo prima del readLine, fuori dal while, passandogli la lunghezza del file.

    in che senso preferisci usare un timer??
    Nel senso che preferisco usare quello.
    In javaSE javax.util.Timer fornisce un timer bell'e che pronto, ma anche in javaME giocando un po' con i thread e schedule si può fare con facilità.

    In non ricordo che lavoro avevo necessità di avere una gui aggiornata (chiamando repaint()) coi dati letti man-mano da un BR.
    Restando vincolato ad un while non potevo farlo, perché il repaint() viene "collassato" e chiamato una volta sola quando il resto del codice finisce, perciò ho utilizzato un timer, così prendevo una riga per volta, la processavo, chiamavo repaint(), e poi via con l'altra riga...
    Ultima modifica di Andy86; 12-04-11 alle 22: 45. Motivo: Precisazione sul mark()
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

Segnalibri

Regole di scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Cookies:direttiva 2009/136/CE (E-Privacy)

Il sito utilizza cookies propri e di terze parti per maggiori informazioni faq - Termini di servizio - Cookies
Il forum non puo' funzionare senza l'uso dei cookies pertanto l'uso della community è vincolato dall'accettazione degli stessi, nel caso contrario siete pregati di lasciare la community, proseguendo la navigazione acconsenti all’uso dei cookie