硬件:IBM ThinkPad X60,Intel T2400 CPU+1G DDR2
軟件:JDK1.6
測試用程序:
測試PrintWriter.print()用程序:
import java.io.*;
import java.text.*;
public class PrintTest{
public static void main(String args[])throws IOException{
PrintWriter output=new PrintWriter(new FileWriter("out.txt"));
long time1=System.currentTimeMillis();
DecimalFormat fmt=new DecimalFormat("0.######");
for(int i=0;i<10000000;i++)
output.println(fmt.format(i));
long time2=System.currentTimeMillis();
output.close();
output=new PrintWriter(System.out);
output.println(Long.toString(time2-time1)+" ms.");
output.close();
}
}
測試PrintWriter.printf()用程序:
import java.io.*;
public class PrintfTest{
public static void main(String args[])throws IOException{
PrintWriter output=new PrintWriter(new FileWriter("out.txt"));
long time1=System.currentTimeMillis();
double d=4.6;
for(int i=0;i<10000000;i++)
output.printf("%.6f\n",d);
long time2=System.currentTimeMillis();
output.close();
output=new PrintWriter(System.out);
output.println(Long.toString(time2-time1)+" ms.");
output.close();
}
}
測試結果:

另外在一開始的時候printf()曾經拋出過這樣一個異常來:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = 'l'
at java.util.Formatter$FormatSpecifier.conversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintWriter.format(Unknown Source)
at java.io.PrintWriter.printf(Unknown Source)
at PrintfTest.main(PrintfTest.java:8)

