在Java中,所有新的格式化功能都由java.utilFormatter类处理。
可以将Formatter看作是一个翻译器,它将你的格式字符串与数据翻译成需要结果。
当你创建一个Formatter对象的时候,需要向其构造器传递一些信息,告诉它最终的结果将向哪里输出。
示例如下:
package com.company;
import java.io.FileNotFoundException;
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) {
String filePath = "file.txt";
Turtle tommy = null;
Formatter formatter = null;
try {
formatter = new Formatter(filePath);
tommy = new Turtle("Tommy", formatter);
tommy.move(45, 12);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
finally {
if (formatter != null) {
formatter.flush();
formatter.close();
}
}
Turtle terry = new Turtle("Terry", new Formatter(System.out));
terry.move(12, 34);
}
}
输出结果
Terry The Turtle is at (12 34)
Formatter的构造器经过重载可以接受多种输出目的地,不过最常用的还是PrintStream·、OutputStream和File。