使用Java Formatter类时,为什么构造函数会创建一个txt文件,而不是写入它?

时间:2015-04-13 19:46:29

标签: java file format formatter

此代码有效,这很奇怪:

import java.util.*;
import java.io.*;

public class FileWork {
    private Formatter r;

    public void openFile(){
        try{
            r = new Formatter("c:\\employees.txt");
        }
        catch(Exception e){
            System.out.println("You got an error");
        }
    }

    public void addRecords(){
        r.format("%d%s%s%n", 34 , " Matt ", "Jenkins");
        r.format("%d%s%s%n", 36 , " John ", "Jackson");
    }
}

然后在另一个类中我调用方法。

public class FileWork2 {
    public static void main(String[] args) {
        FileWork g = new FileWork();
        g.openFile(); //creates file
        g.addRecords(); //adds records
    }
}

但是以下代码不起作用:

import java.io.FileNotFoundException;
import java.util.Formatter;

public class FileWork3 {
    public static void main(String[] args) throws FileNotFoundException {
        final Formatter x = new Formatter("c:\\GuestList2.txt");
        x.format("%d", 10);
    }
}

第二组代码创建了文件GuestList2.txt,但没有写入任何内容。这是空白的。看起来这只有在Formatter设置为public和private,并从另一个类调用时才有效。我对使用格式方法的正确方法感到困惑。

1 个答案:

答案 0 :(得分:1)

这只是因为我需要运行close()方法。现在它工作正常,我用不同的方式尝试了它,使用Final,使用静态方法,现在它的输出正常。感谢您的链接和评论。