Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Leggere file di testo con java

    Ragazzi vi chiedo un serio aiuto, spero che possiate aiutarmi perché vi ho messo tutta la buona volontà e fra poco ho un esame su questo argomento.
    Allora dovrei creare un programma che legga un file di testo e che stampi a video ogni parola del file su una singola riga.
    Per ora voglio riuscire a creare un file che legga un file di testo... ci ho provato, ma sono davvero agli inizi e non ho avuto buoni risultati...
    Il programma è stato compilato e fatto partire.. in entrambi i casi non ho errori, ma come mai a video non mi esce niente? vi do il programma, spero che possiate aiutarmi... ve ne sarò riconoscente ^^

    codice:
    class LeggiFile
    {
       // costruttore
       public LeggiFile() {}
    
       public void leggeToken()
       {
          FileReader f = null;
          BufferedReader fIN = null;
          String s;
    
    
    try
    {
     f = new FileReader("diego.txt");
     fIN = new BufferedReader(f);
    }
    catch (IOException e)
    {
     System.out.println("Errore nell'apertura del file");
     System.exit(1);
    }
    
    try
    {
       
      s = fIN.readLine();
      while (s != null)
      {
    
        // operazioni sulla stringa s
    
      s = fIN.readLine();
      }
    }
    
    catch (IOException e)
     {
         System.out.println("Errore nella lettura del file.");
         System.exit(1);
    }
    
     try
     {
        f.close();
     }
    catch (IOException e)
    {
     System.out.println("Errore nella chiusura del file.");
     System.exit(1);
    }
    }
    
    
     public static void main(String args[])
    {
       LeggiFile a = new LeggiFile();
       a.leggeToken();
    }
    }

  2. #2
    a) metti il codice tra i tag code
    b) cosi' a occhio mi sembra ok anche se e' abbastanza illegibile senza tag code
    c) cosa intendi con // operazioni sulla stringa s? per esempio stampi qualcosa? perche' se non stampi nulla e' difficile che tu veda qualcosa a video.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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

    Re: Leggere file di testo con java

    Originariamente inviato da diegosened
    ma come mai a video non mi esce niente?
    Forse .... perché non stampi nulla??

    Vedo il ciclo while, vedo che leggi le righe ma ... non ne fai nulla delle stringhe! E comunque l'idioma più comune non è fare 2 readLine ma:

    while ((s = br.readLine()) != null) {
    .....
    }


    E in ogni caso fino al livello di righe, ok, ci siamo. Ma non hai ancora i singoli "token" (le parole) nella riga. La riga dovresti "spezzarla" ad esempio usando java.util.StringTokenizer.

    Infine ci sono troppi try-catch. Non si gestiscono così le eccezioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    allora ragazzi seguendo i vostri consigli sono riuscito a modificare il programma!
    adesso l'unica cosa di cui ho bisogno e che non riesco a fare è stampare ogni singola parola del file di testo su una singola riga.
    Esempio: file di testo "diego non sa usare java"
    devo vedere a video:
    diego
    non
    sa
    usare
    java

    vi lascio il codice.. vi prego ho davvero bisogno del vostro aiuto ^^

    codice:
    import java.io.*;
    import java.util.*;
    
      class FileRead  {
        
         public static void main(String args[]) {
            
            FileRead f = new FileRead();
            f.readMyFile();
         }
    
            public void readMyFile() {
                FileReader f = null;
                BufferedReader fIN = null;
                String s;
    
                try {
                 
                   f = new FileReader("diego.txt");
                   fIN = new BufferedReader(f);
                   s = fIN.readLine();
    
                   while(s != null) {
                        System.out.println(s);
                        s = fIN.readLine();
                   }
              
                 }
                 
                 catch (IOException e) {
                     System.out.println("Errore nella lettura del file");
                 }
    
                 finally {
                    
                     if(fIN != null) {
                        try {
                            fIN.close();
                        }
                        catch (IOException e) {
                           System.out.println("Errore nella chiusura del file.");
                        }
            }
       }
     }
    }

  5. #5
    ragazzi penso di avercela fatta... il programma funziona!
    vi chiedo solo di dare un'occhiata e controllare eventuali imprecisioni... posso consegnarlo al prof così?
    grazie a tutti ^^

    codice:
    import java.io.*;
    import java.util.*;
    
      class FileRead  {
        
         public static void main(String args[]) {
            
            FileRead f = new FileRead();
            f.readMyFile();
         }
    
            public void readMyFile() {
                FileReader f = null;
                BufferedReader fIN = null;
                String s;
    
                try {
                 
                   f = new FileReader("diego.txt");
                   fIN = new BufferedReader(f);
                   s = fIN.readLine();
    
                   while(s != null) {
                        String ss[] = s.split(" ");
    		    for (int i = 0; i < ss.length; i++)
    		    System.out.println(ss[i]);
    
                        s = fIN.readLine();
                   }
              
                 }
                 
                 catch (IOException e) {
                     System.out.println("Errore nella lettura del file");
                 }
    
                 finally {
                    
                     if(fIN != null) {
                        try {
                            fIN.close();
                        }
                        catch (IOException e) {
                           System.out.println("Errore nella chiusura del file.");
                        }
    }
    }
    }
    }

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da diegosened
    vi chiedo solo di dare un'occhiata e controllare eventuali imprecisioni...
    split() tecnicamente può andare bene. Ma nel tuo caso sarebbe ancora meglio StringTokenizer. Che succede se ci sono spazi all'inizio della riga? Che succede se due parole sono separate da più spazi? Con split(" ") otterresti token "vuoti". Potresti complicare un pochino la espressione regolare che si passa a split ..... ma tanto vale che usi StringTokenizer.

    E la gestione delle eccezioni è ancora un pelino "fumosa" (ma già meglio di quella iniziale!).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    split() tecnicamente può andare bene. Ma nel tuo caso sarebbe ancora meglio StringTokenizer. Che succede se ci sono spazi all'inizio della riga? Che succede se due parole sono separate da più spazi? Con split(" ") otterresti token "vuoti". Potresti complicare un pochino la espressione regolare che si passa a split ..... ma tanto vale che usi StringTokenizer.

    E la gestione delle eccezioni è ancora un pelino "fumosa" (ma già meglio di quella iniziale!).
    e come posso usare stringtokenizer? ahimè sono ancora all'inizio.. potresti scrivermi la porzione di codice da modificare?

  8. #8
    Bisogna che leggi la documentazione se vuoi imparare le cose:
    http://java.sun.com/javase/6/docs/ap...Tokenizer.html

    comunque:
    codice:
    while(s != null) {
                        StringTokenizer st = new StringTokenizer(s);
                        while(st.hasMoreTokens()) {
                            System.out.println (st.nextToken());
                        }
                        s = fIN.readLine();
                   }
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.