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!!