0

これは特定の質問ではなく、より広範な質問です。Formatter を使用して、Java 以外で結果のファイルを作成しています。

Formatter f = new Formatter(new File("DataResults2")); 

何らかの理由で、このテキスト ファイルに出力しようとしているものが DataResults2 に表示されません。ただし、印刷しようとしているものをEclipseのコンソールに表示できます。

System.out.printf("Market Id %d, Contracts %s, Data Points %d, Starting Date %d,
Ending Date %d\n", firstVariable, set.size(), dataPointCounter, firstDateHolder,    
lastDateHolder);
f.format("%d, %s, %d, %d, %d, ", firstVariable, set.size(),
                    dataPointCounter, firstDateHolder, lastDateHolder);

上で述べたようにSystem.out.print、コンソールにはf.format表示されますが、ファイルには表示されません。

そして、はい、私は使用して閉じますf.close();

フォーマッタの使用時に発生する問題は何ですか? ドキュメントが表示されないのに、コンソールがすべてを正しく出力するのはなぜですか?

コードを追加しないと私の質問に直接答えられないことは理解していますが、コードが長くなりすぎる前にコード全体を表示することはできません。何を探すべきかについていくつかの提案を知りたいだけで、プログラムを実行します。ありがとうございました。

スキート、これは役に立ちますか?

 Iterator itr = set.iterator();
        while (itr.hasNext())
        { //while
            int contractIDDisplay = (int) itr.next();
            if (contractIDDisplay == 1)
            {
                System.out.printf("%d, %d, %d, %d",contractIDDisplay, monthCounter1, firstDate1, lastDate1);
                f.format("%d, %d, %d, %d, ",contractIDDisplay, monthCounter1, firstDate1, lastDate1);
            } 
4

1 に答える 1

1

最後に、 closeを呼び出す必要があります。また、文字セットを指定すると、コンピューター間での移植性が向上します。

Formatter f = new Formatter(new File("DataResults2"), "Windows-1252",
                            Locale.US); // Latin-1 on Windows, US, Part of Europe
Formatter f = new Formatter(new File("DataResults2"), "UTF-8",
                            Locale._US); // International Unicode, US number notation

f.close();

それがうまくいかない場合は、ファイルの絶対パスを使用してください。

String path = System.getProperty("user.home") + File.separator + "DataResults2.txt";

createFile のようなことをする必要はありません。

于 2013-06-17T13:09:06.083 に答える