Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    6

    Non capisco l'eccezione... uff

    Ciao a tutti!
    Chi saprebbe dirmi gentilmente perché il seguente programma mi dà la seguente eccezione?
    codice:
    java.lang.NullPointerException
    	at File.numParole(File1.java:12)
    	at ProvaFile.main(ProvaFile.java:11)
    Teoricamente il programma dovrebbe leggere un file txt di prova, con il nome impostato dall'utente, analizzarne il contenuto e fornire il numero di lettere, il numero di parole e il numero di righe presenti nel file lanciando un'eccezione se non lo trova.

    Classe:
    codice:
    import java.io.*;
    import java.util.*;
    class File{  
      public File(String nomFile) throws IOException{
       FileReader leggiParole = new FileReader(nomFile+".txt");  
       Scanner inParole = new Scanner(leggiParole);
       System.out.println( inParole.nextLine());
      }
      public int numParole() throws FileNotFoundException{ 
         int contaParole = 0;
         String parole;
         while(inParole.hasNext()){
            parole = inParole.next();
            System.out.println(parole);
           contaParole++;
        }
         return contaParole;
      }
      public int numLinee() throws FileNotFoundException{
         int contaLinee = 0;
         String linee;
         while(inParole.hasNext()){
            linee = inParole.nextLine();
            System.out.println(linee);
            contaLinee++;
        }   
         return contaLinee;
      }
      public int numLettere() throws FileNotFoundException{
         int contaLettere = 0;
         String lettere;
         while(inParole.hasNext()){
            lettere = inParole.nextLine();
            for(int i = 0; i < lettere.length(); i++){
            System.out.println( lettere.charAt(i));
            contaLettere++;
            }
         }
         return contaLettere;
      }
      private FileReader leggiParole;
      private static Scanner inParole;
    }
    Main di prova:
    codice:
    import java.io.*;
    import java.util.*;
    class ProvaFile{
    public static void main(String[] poi) throws IOException{
        try {
          System.out.println("Scrivi il file da dove vuoi leggere:");
          Scanner istruzioni = new Scanner(System.in);
          String nomFile = istruzioni.nextLine();
            System.out.println(nomFile);
          File leggi = new File(nomFile);
          System.out.println("Le parole presenti nel file sono: "+leggi.numParole());
          System.out.println("Le linee presenti nel file sono: "+leggi.numLinee());
          System.out.println("Le lettere presenti nel file sono: "+leggi.numLettere());      
        }
        catch (FileNotFoundException s) {  
          System.out.println("Nome del file non corretto");
       }
      }
      
    }
    per provarlo si può usare un qualunque txt

    Grazie!!

  2. #2
    a parte che inParole non lo metterei static, ma nel costruttore di File (che nome infelice) ridichiari inParole, riducendene quindi lo scope al costruttore di File. in pratica dovresti fare solo:

    codice:
    public File(String nomFile) throws IOException{
       FileReader leggiParole = new FileReader(nomFile+".txt");  
       inParole = new Scanner(leggiParole);
       System.out.println( inParole.nextLine());
      }
    max

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    6
    Uao, grazie!!
    Risolto tutto...

    Eheh, effettivamente avrei potuto scegliere un nome un po' più appropriato...

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.