Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    3

    [JAVA] Navigare un file di testo

    Ciao a tutti!
    Vi espongo il mio problema: ho la necessita di nevigare avanti e indietro per le righe di un file di testo. Premetto che utilizzo un BufferedReader e FileReader.
    Ho pensato di utilizzare il metodo mark() e reset() ma il problema è che la mark riceve come parametro un'intero rappresentante un limite di byte di validità del mark stesso e il mio file è così grande che una volta scorso tutto, richiamando il metodo reset, mi da un errore di mark non più valido.
    Qualcuno può aiutarmi?
    Esistono metodi o classi in grado di farmi navigare avanti e indetro sul mio lunghiiiiisimo file di testo?

    Grazie a tutti coloro che vorranno aiutarmi

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    3
    Nessuno può aiutarmi?
    Sto pensando di spezzare il file di ingresso in tanti files lunghi quanto la lunghezza massima del mark.. Solo che probabilmente dovrei creare troppi files...
    Qualc'una ha qualche idea geniale?
    Grazie mille

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    hai guardato i metodi della classe RandomAccessFile?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Navigare un file di testo

    Originariamente inviato da Mic82
    Ciao a tutti!
    Vi espongo il mio problema: ho la necessita di nevigare avanti e indietro per le righe di un file di testo. Premetto che utilizzo un BufferedReader e FileReader.
    Ho pensato di utilizzare il metodo mark() e reset() ma il problema è che la mark riceve come parametro un'intero rappresentante un limite di byte di validità del mark stesso e il mio file è così grande che una volta scorso tutto, richiamando il metodo reset, mi da un errore di mark non più valido.
    Qualcuno può aiutarmi?
    Esistono metodi o classi in grado di farmi navigare avanti e indetro sul mio lunghiiiiisimo file di testo?
    Hai diverse possibilità:
    Potresti caricare tutte le righe in un array di String in modo da averle tutte a disposizione. Se ciò non fosse comodo (perché magari il file è troppo grosso), potresti usare la classe RandomAccessFile, fare prima una scansione di tutto il file con il metodo readLine() e creare un array di long che contiene gli offset di ogni riga. A quel punto con una seek() ti sposti e poi leggi la riga che vuoi.
    Se scegli questa seconda soluzione, ti conviene incapsulare questa funzionalità in una classe specifica (es. RandomLineReader, tanto per fare una ipotesi).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    3
    Grazie mille a tutti ragazzi ho risolto usando la RandomAccessFile.. Mi siete stati veramente di grande aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.