将格式化字符串写入文件 - Java
Writing a formatted string to a file - Java
我有一个字符串,我用 System.out.format()
方法格式化,我做类似的事情:
System.out.format("I = %3d var = %9.6f", i, myVar);
但是当我尝试将这个格式化的字符串写入文件时,我只得到类似 "java.io.PrintStream@84fc8d"
的内容。
查看文档后了解到此方法有点像 System.out.print()
并且只是 return 要显示的 PrintStream(例如在控制台中),所以我尝试将其转换为 .toString
或 String.valueOf()
但我得到相同的结果。
所以我想知道是否有一种方法可以像 String.out.format()
方法一样格式化字符串,但可以在文件中写入?
这是我使用的大概代码(只是把有用的部分显示出来)
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();
}
System.out.format
returns PrintStream
Object
和 toString
方法调用给你 java.io.PrintStream@84fc8d
你正试图写的。
您应该改用 String.format
。
即
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
使用
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
String.format 是您要找的 returns 一个 String
而不是 PrintStream
像 System.out.format
.
您的代码应该是:
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
查看 Java.lang.String.format() Method 了解更多信息。
您还可以使用 java 7 中的 java.util.Formatter。参考文档:
我有一个字符串,我用 System.out.format()
方法格式化,我做类似的事情:
System.out.format("I = %3d var = %9.6f", i, myVar);
但是当我尝试将这个格式化的字符串写入文件时,我只得到类似 "java.io.PrintStream@84fc8d"
的内容。
查看文档后了解到此方法有点像 System.out.print()
并且只是 return 要显示的 PrintStream(例如在控制台中),所以我尝试将其转换为 .toString
或 String.valueOf()
但我得到相同的结果。
所以我想知道是否有一种方法可以像 String.out.format()
方法一样格式化字符串,但可以在文件中写入?
这是我使用的大概代码(只是把有用的部分显示出来)
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();
}
System.out.format
returns PrintStream
Object
和 toString
方法调用给你 java.io.PrintStream@84fc8d
你正试图写的。
您应该改用 String.format
。
即
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
使用
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
String.format 是您要找的 returns 一个 String
而不是 PrintStream
像 System.out.format
.
您的代码应该是:
WRITE_MY_LINE(String.format(" I = %3d var = %9.6f", i, myVar));
查看 Java.lang.String.format() Method 了解更多信息。
您还可以使用 java 7 中的 java.util.Formatter。参考文档: