将格式化的字符串写入文件 - Java

时间:2015-09-17 09:33:28

标签: java string format bufferedwriter printstream

我有一个用System.out.format()方法格式化的字符串,我做了类似的事情:

System.out.format("I = %3d  var = %9.6f", i, myVar);

但是当我尝试将这个格式化的字符串写入文件时,我只能得到类似"java.io.PrintStream@84fc8d"的内容。

在查看文档后,了解到这个方法有点像System.out.print(),只返回要显示的PrintStream(例如在控制台中),所以我尝试用.toString或{{1}转换它但是我得到了相同的结果。

所以我想知道是否有一种方法可以像String.valueOf()方法一样格式化字符串,但是以一种可以在文件中写入的方式?

这是我使用的代码(只显示有用的部分)

String.out.format()

4 个答案:

答案 0 :(得分:3)

var items = ''; 返回System.out.format PrintStreamObject方法调用正在向您提供您正在尝试编写的toString

您应该使用String.format代替。

<强>

java.io.PrintStream@84fc8d

答案 1 :(得分:2)

使用

WRITE_MY_LINE(String.format(" I = %3d  var = %9.6f", i, myVar));

答案 2 :(得分:2)

String.format正是您要找的它会返回String而不是PrintStream,如System.out.format

您的代码应为:

WRITE_MY_LINE(String.format(" I = %3d  var = %9.6f", i, myVar));

请查看 Java.lang.String.format() Method 以获取更多信息。

答案 3 :(得分:1)

您也可以使用java 7中的java.util.Formatter。参考文件:

java.util.Formatter