I have StringBuilder sb
and I want that string save as *.txt
file. Problem is that I get "filename.txt"
but it is completely empty, also there is no errors in console.
Here is my code:
System.out.print(sb.toString());
PrintWriter out;
try{
out = new PrintWriter("filename.txt");
out.println(sb.toString());
}catch (Exception e) {
e.printStackTrace();
}
Console output:
[19/3/2014]
Ime in priimek: Matjaz Mav
Naslov: Ppot 6, 1000 Ljubljana
Telefon: 040 111 222
Registerska št.: LJ 1234
Znamka: Citroen
Model: C4
Letnik: 2005
Opombe: Popravi
Thanks!
Either create your PrintWriter
with this constructor, changing the first argument to an OutputStream
:
out = new PrintWriter(new FileOutputStream("filename.txt"), true);
to turn on auto flushing, or, just close the writer once you're done writing to it with out.close()
.
You should use out.close()
statement in this program.
out.close (); is missing.
You have to put it in to close the session.
PrintWriter out;
try{
out = new PrintWriter("filename.txt");
out.println(sb.toString());
//add the below lines
out.flush();
out.close();
}catch (Exception e) {
e.printStackTrace();
}
Another way is to have a PrintWriter
with autoFlush on. That can be achieved by
out = new PrintWriter(new FileOutputStream("filename.txt"), true);
If you do only out.close()
that would also solve the problem at hand as that would internally flush
the content written in its internal buffer.
Hope this helps.