Domanda Problema di interazione con file di testo.

Stato
Discussione chiusa ad ulteriori risposte.

Luxor_ska

Utente Silver
22 Gennaio 2012
66
5
5
61
Allora ho un problema con questo codice java che sto scrivendo:
Codice:
[LIST=1]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.File[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.FileReader[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.BufferedReader[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.FileWriter[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.BufferedWriter[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.IOException[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]java.io.FileNotFoundException[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]import[/B] [COLOR=#006699]javax.swing.JOptionPane[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]public[/B] [B]class[/B] Testo [COLOR=#009900]{[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]private[/B] [COLOR=#003399]File[/COLOR] f[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]private[/B] [COLOR=#003399]FileReader[/COLOR] fr[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]private[/B] [COLOR=#003399]BufferedReader[/COLOR] br[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]private[/B] [COLOR=#003399]FileWriter[/COLOR] fw[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]private[/B] [COLOR=#003399]BufferedWriter[/COLOR] bw[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]public[/B] [COLOR=#003399]String[/COLOR] appoggio[COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][B]public[/B] [COLOR=#003399]String[/COLOR] path[COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]public[/B] Testo[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000] costruttore[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] leggi[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] scrivi[COLOR=#009900]([/COLOR]appoggio[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] costruttore[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]try[/B][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]String[/COLOR] path [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"file.txt"[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]File[/COLOR] f [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]File[/COLOR][COLOR=#009900]([/COLOR]path[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]FileReader[/COLOR] fr [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]FileReader[/COLOR][COLOR=#009900]([/COLOR]f[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]BufferedReader[/COLOR] br [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]BufferedReader[/COLOR][COLOR=#009900]([/COLOR]fr[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]FileWriter[/COLOR] fw [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]FileWriter[/COLOR][COLOR=#009900]([/COLOR]f,[COLOR=#000066][B]true[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000] [COLOR=#003399]BufferedWriter[/COLOR] bw [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]BufferedWriter[/COLOR] [COLOR=#009900]([/COLOR]fw[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]  [B]catch[/B] [COLOR=#009900]([/COLOR][COLOR=#003399]FileNotFoundException[/COLOR] path[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]         [B]try[/B][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]           f.[COLOR=#006633]createNewFile[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000]     [B]catch[/B] [COLOR=#009900]([/COLOR][COLOR=#003399]IOException[/COLOR] e[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]       e.[COLOR=#006633]printStackTrace[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000]  [COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]  [B]catch[/B] [COLOR=#009900]([/COLOR][COLOR=#003399]IOException[/COLOR] e[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]      e.[COLOR=#006633]printStackTrace[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000][B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] leggi[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]  [COLOR=#003399]String[/COLOR] appoggio[COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]   [B]while[/B][COLOR=#009900]([/COLOR][COLOR=#000066][B]true[/B][/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]      [B]try[/B] [COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]            appoggio [COLOR=#339933]=[/COLOR] br.[COLOR=#006633]readLine[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]           [B]if[/B][COLOR=#009900]([/COLOR]appoggio [COLOR=#339933]==[/COLOR] [COLOR=#000066][B]null[/B][/COLOR][COLOR=#009900])[/COLOR][/COLOR]
[*][COLOR=#000000]           [B]break[/B][COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]           [COLOR=#003399]JOptionPane[/COLOR].[COLOR=#006633]showMessageDialog[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000066][B]null[/B][/COLOR],appoggio[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]        [B]catch[/B] [COLOR=#009900]([/COLOR][COLOR=#003399]IOException[/COLOR] e[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]     e.[COLOR=#006633]printStackTrace[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000]  [COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*]
[*][COLOR=#000000][B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] scrivi[COLOR=#009900]([/COLOR][COLOR=#003399]String[/COLOR] appoggio[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]        [COLOR=#003399]JOptionPane[/COLOR].[COLOR=#006633]showInputDialog[/COLOR][COLOR=#009900]([/COLOR]appoggio[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000]        [B]try[/B] [COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]         bw.[COLOR=#006633]write[/COLOR][COLOR=#009900]([/COLOR]appoggio[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*][COLOR=#000000]         bw.[COLOR=#006633]flush[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000]        [B]catch[/B] [COLOR=#009900]([/COLOR][COLOR=#003399]IOException[/COLOR] e[COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]     e.[COLOR=#006633]printStackTrace[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000][COLOR=#009900]}[/COLOR][/COLOR]
[*]
[*][COLOR=#000000] [B]public[/B] [B]static[/B] [COLOR=#000066][B]void[/B][/COLOR] main[COLOR=#009900]([/COLOR][COLOR=#003399]String[/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] args[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR][/COLOR]
[*][COLOR=#000000]     [B]new[/B] Testo[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/COLOR]
[*]
[*][COLOR=#000000]    [COLOR=#009900]}[/COLOR][/COLOR]
[*][COLOR=#000000][COLOR=#009900]}[/COLOR][/COLOR]
[/LIST]


In pratica appena può incappa nelle eccezioni...
Es: Se il file non è presente non riesce a generarlo e va nel' eccezione,
quando gli chiedo di leggere va nel' eccezione,
quando gli chiedo di scrivere va nel' eccezione....

L' errore è sempre: Exception in thread "main" java.lang.NullPointerException..
Consigli?

Edit: il codice non si vede neanche D:
http://pastebin.com/k0pNm87a

(scusate se ho sbagliato sezione.)
 
hai provato a referenziare la classe nel main e poi richiamare i metodi da lì?
PS: è inutile creare un metodo costruttore quando ogni classe ha già il proprio costruttore.
 
Ultima modifica:
Scusa ma sono proprio agli inizi... che intendi per referenziare l classe main? (comunque no, non ci ho provato XD).
Per il costruttore... idem per sopra XD
Edit: risolto.
Codice:
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.FileNotFoundException;
import javax.swing.JOptionPane;


public class Testo {


	private File f;
	private FileReader fr;
	private BufferedReader br;
	private FileWriter fw;
	private BufferedWriter bw;
	public String path;


	public Testo(){
		inizializzatore();
		scrivi();
		leggi();
	}


	public void inizializzatore(){
		try{
			this.path = "file.txt";
			this.f = new File(path);
			this.fr = new FileReader(f);
			this.br = new BufferedReader(fr);
			this.fw = new FileWriter(f,true);
			this.bw = new BufferedWriter (fw);
		}
		catch (IOException e){
			e.printStackTrace();
		}
	}


public void leggi() {
	try {
	   String line;
	   while ((line = br.readLine()) != null) {
	     JOptionPane.showMessageDialog(null, line);
	   }
	}
	catch (IOException ex) {
	     System.err.println("Problemi durante la lettura del file");
	   }
}




	public void scrivi(){
		String appoggio = JOptionPane.showInputDialog("Inserisci la stringa");
		try {
			bw.write(appoggio);
			bw.flush();
			bw.close();
		}


		catch (FileNotFoundException fnfEx){
			try{
				f.createNewFile();
			}
			catch (IOException e){
				e.printStackTrace();
			}
		}
		catch (IOException e){
				e.printStackTrace();
		}
	}




	public static void main(String[] args) {
		new Testo();
	}
}
 
per referenziare intendo creare un puntatore che si riferisce all'oggetto Testo che hai creato con new.
con che libro lo stai studiando il java?
 
Stato
Discussione chiusa ad ulteriori risposte.