4

こんにちは私はJAVAのファイル名に日付と時刻を追加しようとしています。ファイル内に印刷された日付と時刻を取得することもできますが、これも実行したいのですが、toStringをFileWriterに配置すると、Nullポインターが取得されます。

package com.mkyong;
import java.util.*;
import java.io.*;
import java.*;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

    public class Simplex {

        private static PrintWriter outFile;

        //Main Method
        public static void main(String[] args) throws IOException {



            // Instantiate a Date object
             Date date = new Date();

             // display time and date using toString()
             outFile.println(date.toString());
             outFile.println();
            //creates the new file to be saved


            outFile = new PrintWriter(new FileWriter("simplex" + (date.toString()) + ".txt"));
4

7 に答える 7

5

この行outFile = new PrintWriter(..)は、outFile を最初に使用する前に発生する必要があります。

基本的に、初期化する前に outFile を使用しています。

于 2012-06-18T17:42:03.353 に答える
3

YYYY-MM-dd_hh-mm-ssより便利な方法でファイルを整理できるように、ファイル名に書式パターンを使用することをお勧めします。SimpleDateFormatクラスを見てください。

    ...
    Format formatter = new SimpleDateFormat("YYYY-MM-dd_hh-mm-ss");
    outFile = new PrintWriter(new FileWriter("simplex_" + formatter.format(date) + ".txt"))
    ...
于 2012-06-18T17:47:35.800 に答える
0
// display time and date using toString()
outFile.println(date.toString());

コードでは、outFile初期化する前に使用します。

于 2012-06-18T17:44:33.523 に答える
0

変数に保存するだけです。新しい Date(long) コンストラクターを使用する必要があります。

public class Simplex {

    private static PrintWriter outFile;

    //Main Method
    public static void main(String[] args) throws IOException {



        // Instantiate a Date object
         Date date = new Date(System.currentTimeMillis());
         String dateString = date.toString();


        outFile = new PrintWriter(new FileWriter("simplex" + dateString + ".txt"));


         outFile.println(dateString);
         outFile.println();
        //creates the new file to be saved
于 2012-06-18T17:46:16.597 に答える
0

問題は、 outFile が静的として宣言されているが、既に使用するまで初期化されないことです。

実際に使用する前に、最初に outFile を初期化/インスタンス化する必要があります。

 private static PrintWriter outFile;

    //Main Method
    public static void main(String[] args) throws IOException {

        // Instantiate a Date object
         Date date = new Date();

        //creates the new file to be saved
        outFile = new PrintWriter(new FileWriter("simplex" + (date.toString()) + .txt"));
        // display time and date using toString()
         outFile.println(date.toString());
         outFile.println();

ローカル変数だけでなく、静的オブジェクトとして outFile を作成している理由も完全にはわかりませんが。

于 2012-06-18T17:47:36.937 に答える