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();
}
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.
这篇关于将格式化的字符串写入文件 - Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何检测 32 位 int 上的整数溢出?How can I detect integer overflow on 32 bits int?(如何检测 32 位 int 上的整数溢出?)
return 语句之前的局部变量,这有关系吗?Local variables before return statements, does it matter?(return 语句之前的局部变量,这有关系吗?)
如何将整数转换为整数?How to convert Integer to int?(如何将整数转换为整数?)
如何在给定范围内创建一个随机打乱数字的 intHow do I create an int array with randomly shuffled numbers in a given range(如何在给定范围内创建一个随机打乱数字的 int 数组)
java的行为不一致==Inconsistent behavior on java#39;s ==(java的行为不一致==)
为什么 Java 能够将 0xff000000 存储为 int?Why is Java able to store 0xff000000 as an int?(为什么 Java 能够将 0xff000000 存储为 int?)