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");
    }