Senza entrare nel merito della gestione delle eccezioni e del corretto modo di gestire i files, non capisco perchè tu non stia facendo l'analisi della riga da scrivere (per vedere se supera i famosi 76 caratteri).
Ad ogni modo, riporto qui sotto il tuo codice con i commenti di ciò che fa, così puoi renderti conto di quali possano essere le problematiche:
codice:// Qui io presumo che "Mail.mailFile" sia una stringa contenente // il percorso completo al file da leggere. Se non è così o se // punta ad un file inesistente, ovviamente non farà nulla di tutto // ciò che si prevede nel codice FileReader fr=new FileReader(Mail.mailFile); // Ok BufferedReader br=new BufferedReader(fr); // Non è necessario, però OK // Il nuovo file verrà creato nella Working Directory! File tmp=new File("emailtemp.eml"); // OK FileWriter fw=new FileWriter(tmp); // In questo ciclo, scorri il file da leggere e concateni // tutte le righe in un'unica riga all'interno dello StringBuilder // (ricorda che readLine() butta via il carattere di newLine!) // Quindi, se il file originale è questo: // // Prima Riga // Seconda Riga // Terza Riga // // Nello StringBuilder avrai: // // Prima RigaSeconda RigaTerza Riga while((s=br.readLine())!=null){ s1.append(s); } // Qui ottieni il contenuto dello StringBuilder in una stringa String s2=s1.toString(); // OK PrintWriter pw=new PrintWriter(fw); // Scrivi nel file UNA SOLA RIGA contenente tutte le righe // del file originale, appiccicate una accanto all'altra pw.print(s2); // Chiudi il file senza aver effettuato alcun flush() // Quindi non c'è nessuna garanzia che i dati vengano effettivamente // scritti pw.close(); // Questo è del tutto inutile, lo stream è già stato chiuso // dall'istruzione precedente fw.close();
Ciao.![]()



Rispondi quotando