在学习think in java中一个例子中用到Formatter工具类,有看到Formatter(File file)构造方法,猜想应该是将文本写入某个文件中,发现写入不了
最后在stackflow上找到答案了, 需要关闭Formatter对象,才会写入数据
如下
package com.jack.thinkinjava.everythinginobject.string;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Formatter;
public class Turtle {
private String name;
private Formatter f;
public Turtle(String name, Formatter f){
this.name = name;
this.f = f;
}
public void move (int x, int y ){
f.format("%s The Turtle is at (%d, %d)\n", name, x, y);
}
public static void main(String[] args) throws FileNotFoundException {
File file = new File("1.txt");
PrintStream outAlias = System.out;
Formatter f2 = new Formatter(file);
Turtle tommy = new Turtle("Tommy", f2);
Turtle terry = new Turtle("Terry", new Formatter(outAlias));
tommy.move(0, 0);
terry.move(4, 8);
tommy.move(0, 0);
terry.move(4, 8);
tommy.move(0, 0);
terry.move(4, 8);
f2.close();
}
}
f2.close()方法,类似io流 flush()效果
参考地址:https://stackoverflow.com/questions/20036056/formatter-not-writing-to-file