Newsgroup: it.comp.java
Titolo: BufferedWriter e FileWriter e scrittura fallita

Ciao ragazzi, problema forse un po' strano? Dovrei semplicemente
scrivere una stringa in File.txt. Il problema e' che se File.txt
contiene gia' una o due righe vuote, questa scrittura funziona
correttamente. Altrimenti se File.txt e' proprio vuoto, la linea vuota
non viene creata! E mi da' errore, non scrive su file, da'
l'eccezione. Ma e' normale questo comportamento?
BufferedWriter out = new BufferedWriter(new FileWriter("File.txt"));
out.write(stringa, 0, stringa.length()); 
out.newLine();
Siccome dovrei creare un po' di linee io desidererei poter scrivere
anche se il file File.txt inizialmente e' vuoto. Ho anche provato ad
usare la proprita':
new FileWriter("File.txt", true);
che dovrebbe indicare append, ma mi sembra significhi... "Inserisci
cio' che devi introdurre alla fine del file e non all'inizio", non mi
sembra sia cio' che serve a me. In ogni modo non funziona, fallisce la
scrittura.
Qualche soluzione? E' normale? Devo davvero iniziarlizzare il file
File.txt con un po' di righe vuote e lasciarlo lì cosi'?
Altri modi per scrivere su file riga per riga?
Grazie!
--
Paolo Guagliumi - ICQ 46580228
http://web.tiscali.it/infosapere

 out.newLine();
E se invece fai
out.write(stringa);
out.newLine();
che succede ?
Davide
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Stai usando uno stream buffered devi fare la aot.flush(), inoltre alla 
fine gli stream andrebbero chiusi (out.close())
Stefano

Stefano
Ringrazio entrambi, ma non mi funziona lo stesso. out.close(), e
out.flush() Stefano gia' c'erano. Ho anche provato con
out.write(stringa) Davide, ma non cambia nulla. Ho anche provato con:
PrintWriter out = new PrintWriter(new FileOutputStream("File.txt"));
e istruzioni relative, ma se il file non aveva gia' delle linee vuote,
non funziona. La cosa strana e' che, se non sbaglio, lo avevo provato
con il JDK 1.3 due o tre settimane fa e funzionava mentre ora che ho
messo l'1.4 mi da' questo errore nel salvataggio, non lo fa, da'
eccezione:
"Scrittura del file JRfc.storiafile
fallita.java.lang.NullPointerException"
Breve codice: il tutto e' in una try... catch... 
BufferedWriter out = new BufferedWriter(new
FileWriter("risorse/JRfc.storiafile"));
 
if (!stringa.equals(null))
{
	out.write(stringa, 0, stringa.length()); 
	out.newLine();
	System.out.println("sono qui 1");
}
out.flush();  // scrive gli ultimi dati rimasti nel buffer
out.close();
System.out.println("sono qui 2");
e se il file e' vuoto puntualmente mi segnala l'eccezione e non vi
scrive. Che tristezza che a volte anche cose cosi' banali non
funzionino per qualche ragione. Magari e' una stupidaggine, boh.
Grazie comunque, ciao.


Il Tue, 12 Mar 2002 14:14:30 GMT, 
pguag...@rimuovi-libero.it
 (Paolo
Guagliumi) ha scritto:
Capito l'errore. In pratica faccevo scrivere il valore null su file e
avevo sbagliato il controllo per verificare che la stringa da scrivere
non fosse null. Quindi non riuscivo a capire l'errore.
Questo prezioso codice mi ha salvato:
try 
{
	FileWriter fw = new FileWriter("test.txt");
        BufferedWriter bw = new BufferedWriter(fw);
        PrintWriter pw = new PrintWriter(bw);
        pw.println("This is a test");
        pw.println("This is only a test");
        pw.println("In the event of a real...");
        pw.close();
        bw.close();
        fw.close();
}
catch (Exception e) 
{
      System.out.println(e.toString());
}
Ora infatti uso:
FileWriter fw = new FileWriter("risorse/JRfc.his");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
Grazie ancora, ciao!
--
Paolo Guagliumi - ICQ 46580228
[ newsletter gratuita infosapere ] - 
http://web.tiscali.it/infosapere

Il Tue, 12 Mar 2002 15:48:06 GMT, 
pguag...@rimuovi-libero.it
 (Paolo
Guagliumi) ha scritto:
... In pratica faccevo ...
ehm, sorry, "facevo", eh, eh. Ciao!
