4

您好我正在尝试将日期和时间添加到 JAVA 中的文件名中。我可以在文件中打印日期和时间,我也想这样做,但是当我将 toString 放在 FileWriter 中时,我得到一个空指针。

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

10

如果使用 java 8

DateTimeFormatter timeStampPattern = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        System.out.println(timeStampPattern.format(java.time.LocalDateTime.now()));
于 2016-04-18T07:57:14.033 回答
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 回答
0

可以使用下面提到的代码段

 String logFileName = new SimpleDateFormat("yyyyMMddHHmm'.txt'").format(new Date());

 logFileName = "loggerFile_" + logFileName;
于 2017-06-05T09:58:09.567 回答