Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371

    leggere file di testo con Scanner

    per leggere un file di testo ho utilizzato un oggetto della classe Scanner e solo ora ho notato l'esistenza di BufferedReader, ci sono molte differenze fra i due?
    Vorrei aggiungere un controllo per far in modo che possa controllare se il file che si vuole leggere è effettivamente un file di testo, ma da quello che ho capito con la classe Scanner non è possibile quindi dovrei rifare tutto con una classe più appropriata... è cosi?

  2. #2
    Lo Scanner di java.util serve per lo più a leggere input forniti da tastiera. Il BufferedReader ti consente di lavorare agevolmente con file testuali, in particolare se accoppiato con un FileReader. In genere la classica inizializzazione è questa :


    BufferedReader br = null;
    FileReader fr = null;
    try{
    try{
    File f = new File("percorso_tuo_file");
    fr = new FileReader(f);
    br = new BufferedReader(fr);
    .....
    operazioni varie
    .....
    }finally{br.close();}
    }catch(Exception e){...}


    Nel tuo caso potresti servirti del catch per vedere se il file passato come parametro è un file di testo. O magari semplicemente controllare l'estensione del file e vedere se termina con ".txt"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    sono molte le differenze fra Scanner e l'accoppiata FileReader BufferedReader?
    nella classe Scanner ho a disposizione il metodo setDelimiter grazie al quale posso poi scorrere i vari blocchi del file(so già in partenza la struttura del file), in BufferedReader mi sembra che non esista nulla di simile, o sbaglio?

  4. #4
    con BufferedReader puoi leggere linea per linea il file con il metodo readLine(), che ti restituisce una Stringa ovviamente. Poi con uno StringTokenizer ci fai quello che vuoi...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    si ma nel mio caso ci sono vari blocchi di più righe che devo prendere tutte insieme con un divisore standard tra loro, quindi con Scanner riesco a prelevare questi blocchi con poche righe di codice mentre se non sbaglio con l'accoppiata da te proposta dovrei prendere una riga alla volta e una volta raggiunto il delimitatore dovrei riunire le righe...

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.