Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con FileWriter

    Funziona tutto, le varaibili sono ok, mi crea anche un nuovo file se ancora non esiste, però non scrive niente. Cosa sbaglio?

    codice:
    public void chiudiTransazione() throws IOException{
            int dim=biglietto.size();
            ArrayList <String> codice=new ArrayList <String>();
            ArrayList <String> genere=new ArrayList <String>();
            ArrayList <String> eta=new ArrayList <String>();         
             PrintWriter writer =new PrintWriter(new BufferedWriter(new FileWriter("emessi.txt",true))); // non sovrascrivere, accoda
            for(int i=1;i<dim+1;i++){
                if(biglietto.get(i)!=null){
                if(gruppo==biglietto.get(i).getGruppo()){
                    nGruppo++;
                    codice.add(biglietto.get(i).getCategoria());
                    genere.add(String.valueOf(biglietto.get(i).getGenere()));
                    eta.add(biglietto.get(i).getEta());
                }}
                else {dim++;
                }}
            writer.print(getDataOdierna()+"|" +getOraAttuale()+ "|");
            writer.print("Numero persone: "+ String.valueOf(nGruppo)+"|");
            for(int i=0;i<nGruppo;i++){
                writer.print(codice.get(i)+"|"+genere.get(i)+"|"+eta.get(i));
                if(i==nGruppo-1)
                    writer.print("\n");
                else
                    writer.print("|");
            }
    
            gruppo++;
            setChanged(); 
            notifyObservers("1");
        }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wFree Visualizza il messaggio
    però non scrive niente. Cosa sbaglio?
    Manca un close() (e per sicurezza un flush() prima), che è da fare in modo appropriato sfruttando try-finally, perché IOException può uscire fuori dal metodo

    P.S. Comunque il metodo è un po' "pasticciato", è un mix di logica e I/O.

    EDIT: anzi, no per il finally, perché PrintWriter nasconde le eccezioni.
    Ultima modifica di andbin; 26-06-2015 a 16:43
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok, ci provo! Grazie

  4. #4
    codice:
    public void chiudiTransazione() throws IOException{
            int nGruppo=0;
            int dim=biglietto.size();
            ArrayList <String> codice=new ArrayList <String>();
            ArrayList <String> genere=new ArrayList <String>();
            ArrayList <String> eta=new ArrayList <String>();
            try{
             PrintWriter writer =new PrintWriter(new BufferedWriter(new FileWriter("emessi.txt",true))); // non sovrascrivere, accoda
            for(int i=1;i<dim+1;i++){
                if(biglietto.get(i)!=null){
                if(gruppo==biglietto.get(i).getGruppo()){
                    nGruppo++;
                    codice.add(biglietto.get(i).getCategoria());
                    genere.add(String.valueOf(biglietto.get(i).getGenere()));
                    eta.add(biglietto.get(i).getEta());
                }}
                else {dim++;
                }}
            writer.print(getDataOdierna()+"|" +getOraAttuale()+ "|");
            writer.print("Numero persone:"+ nGruppo+"|");
            for(int i=0;i<nGruppo;i++){
                writer.print(codice.get(i)+"|"+genere.get(i)+"|"+eta.get(i));
                if(i==nGruppo-1)
                    writer.println("");
                else
                    writer.print("|");
            }
            writer.close();
            gruppo++;
            setChanged(); 
            notifyObservers("1");}
            catch(IOException e){
               //mostrare JPaneOption di avvertimento 
            }
        }
    Così funziona. E' giusto l'uso del try-catch o ho fatto errori?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.