Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  2. #2
    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();}
    		
    
    
    	}
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.