I have a string that I format with the System.out.format()
method, I do something like :
System.out.format("I = %3d var = %9.6f", i, myVar);
but when I try to write this formatted string into a file, I only get something like "java.io.PrintStream@84fc8d"
in it.
After looking into the documentation understood that this method is a little like System.out.print()
and just return a PrintStream to display (in console for example), so I tried converting it with .toString
or String.valueOf()
but I get the same result.
So I was wondering if there is a way to format a string just like the String.out.format()
method does, but in a way that will be writable in a file ?
Here is approximately the code I use (just making the useful parts appear)
WRITE_MY_LINE(System.out.format(" I = %3d var = %9.6f", i, myVar).toString());
//also tried this :
WRITE_MY_LINE(String.valueOf(System.out.format(" I = %3d var = %9.6f", i, myVar)));
public static void WRITE_MY_LINE(String line) {
buff_out = new BufferedWriter(new FileWriter(ascii_path, true));
buff_out.append(line);
buff_out.newLine();
buff_out.flush();
}
FileWriter: FileWriter is the simplest way to write a file in Java. It provides overloaded write method to write int, byte array, and String to the File. You can also write part of the String or byte array using FileWriter. FileWriter writes directly into Files and should be used only when the number of writes is less.
System.out.format
returns PrintStream
Object
and toString
method call is giving you java.io.PrintStream@84fc8d
which you are trying to write.
You should use String.format
instead.
i.e
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
String.format is what you are looking for it returns a String
and not a PrintStream
like System.out.format
.
Your code should be:
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
Take a look at Java.lang.String.format() Method for further information.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With