Quote Originariamente inviata da LeleFT Visualizza il messaggio
No, nel tuo codice il file viene chiuso DOPO che hai già cercato di leggerlo: il primo blocco try/catch racchiude al suo interno anche la lettura.

Prova a vedere questo:

codice:
import java.io.*;

public class Main1 {
    public static void main (String[]args){
        File file1 = new File("prova.txt");
        boolean leggi = false;
        FileWriter fw = null;
        BufferedWriter scrittore = null;
        try{
            fw = new FileWriter( file1 );
            scrittore = new BufferedWriter( fw );
            scrittore.write("ciao");
            scrittore.newLine();
            scrittore.write("a tutti");
            scrittore.flush();
            leggi = true;   // Indico al programma che la scrittura è andata a buon fine
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // Qui viene fatta la chiusura di tutti gli oggetti di scrittura
            if (scrittore != null) {
                try { scrittore.close(); } catch (Exception e) { /* Inutile stampare lo stackTrace qui */ }
            } else {
                if (fw != null) {
                   try { fw.close(); } catch (Exception e) { }
                }
            }
        }

        if ( leggi ) {   
           // Posso leggere perchè la scrittura è andata a buon fine
           FileReader fr = null;
           BufferedReader lettore = null;
           String frase=null;
           try {
               fr = new FileReader( file1 );
               lettore = new BufferedReader( fr );
               while((frase=lettore.readLine()) != null) {
                   System.out.println( frase );
               }
           } catch(IOException e){
               e.printStackTrace();
           } finally {
               if (lettore != null) {
                   try { lettore.close(); } catch (Exception e) { }
               } else {
                   if (fr != null) {
                       try { fr.close(); } catch (Exception e) { }
                   }
               }
           }
        }
    }
}

Ciao.
ciao grazie della risposta questa è la soluzione che ho applicato e sembra funzionare
codice:
import java.io.*;public class main1 {
	public static void main (String[]args){
		File file1=new File("prova.txt");
		BufferedWriter scrittore=null;
		try{
			if(file1.createNewFile()){
				scrittore=new BufferedWriter(new FileWriter(file1));
				scrittore.write("ciao");
				scrittore.newLine();
				scrittore.write("a tutti");
				scrittore.close();
			}
			
			
//----------------------------------------------------------------------------\\			
			
			BufferedReader lettore=null;
			String frase=null;
			file1=new File("prova.txt");
			try{
				lettore=new BufferedReader(new FileReader(file1));
				while((frase=lettore.readLine())!=null){
					System.out.println(frase);
				}
			}
			catch(IOException e){e.printStackTrace();}
			finally{lettore.close();}
		}
		catch(IOException e){e.printStackTrace();}
		


	}
}