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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值