allora tramite una interfaccia grafica seleziono il file da far analizzare e poi, per l'analisi, lo associo ad un oggetto scanner.
Come si fa a passare come parametro questo oggetto scanner??
Fino ad ora ho scritto questo:
Codice:
import java.io.*;
import java.util.Scanner;
import javax.swing.JFileChooser;
import java.lang.*;
public class textAnalyzer
{
String nomefile;
int sommaCar;
int numero_linee;
int numero_parole;
int palindrome;
private textAnalyzer(String file)
{
nomefile="";
sommaCar=0;
numero_linee=0;
numero_parole=0;
palindrome=0;
}
public int contaCaratteri(InputStream in)
{
while (in.hasNextLine())
{
String line=in.nextLine();
sommaCar=sommaCar+line.length();
}
return sommaCar;
}
public int contaLinee(InputStream in)
{
while (in.hasNextLine())
{
String line=in.nextLine();
numero_linee++;
}
return numero_linee;
}
public static void main (String[] args)
{
try
{
JFileChooser chooser= new JFileChooser();
FileReader fr=null;
if (chooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
{
File selectedFile=chooser.getSelectedFile();
fr=new FileReader(selectedFile);
}
Scanner in=new Scanner(fr);
textAnalyzer testo=new textAnalyzer(in);
System.out.println ("File" + in + "letto correttamente");
System.out.println("Numero di caratteri nel file= "+testo.contaCaratteri(in));
System.out.println("Numero di linee nel file= "+testo.contaLinee(in));
}
catch (IOException exception)
{
System.out.println ("errore nel file "+exception);
}
}
}
Accetto critiche, suggerimenti e soprattutto qualcuno che riesca ad aiutarmi su come far capire ad ogni singolo costruttore (contacaratteri e contalinee) che deve effettuare la scansione sull'oggetto In che a sua volta giā contiene il nome del file selezionato.
un'ultima cosa: come mai usando JFileChooser, dopo che appare il messaggio che il file č stato letto correttamente, c'č una successione di caratteri e valorizzazioni che non c'entrano nulla con il programma??Le mette di default quella struttura per caso?
grazie.