Salve, non riesco a capire dove sbaglio... vorrei scrivere su un file di testo 4 elementi String di classe Contatto in "Rubrica.txt"... con questo sorgente

codice:
import java.io.*;
class Scrivi{
	public void scrivi(){
		Contatto c = new Contatto();
		FileWriter f;
		PrintWriter fout;
		try {
			f = new FileWriter("Rubrica.txt");
			fout = new PrintWriter(f);
		}
		catch (IOException e){
			System.out.println("Errore: " + e.getMessage());
			System.exit(1);
		}
		while (true){
			c.Leggi();
			fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.indirizzo);
			fout.flush();
			if (c.y == 'n') break;
		}
		f.close();
	}
}
il compilatore genera i seguenti errori:


codice:
C:\Users\Valerio\Desktop\java\rubrica>javac Scrivi.java
Scrivi.java:18: error: variable fout might not have been initialized
                        fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.i
ndirizzo);
                        ^
Scrivi.java:22: error: variable f might not have been initialized
                f.close();
                ^
Scrivi.java:22: error: unreported exception IOException; must be caught or decla
red to be thrown
                f.close();
                       ^
3 errors

C:\Users\Valerio\Desktop\java\rubrica>
Il terzo errore posso capirlo perché non ho messo i costrutti... ma i primi due? Il controllo try-catch potrebbe non inizializzare la variabile come dice il compilatore, ma nel catch ho impostato exit, quindi una tale condizione non si potrebbe mai verificare!