Java - BufferedWriter不写(在flush()之后)

时间:2012-04-04 05:22:16

标签: java file io epoch bufferedwriter

解答: 您无法直接将int写入文件。首先将其转换为字符串。


原始问题:

我知道这可能听起来像一个不起眼的问题,但我无处可去。

我正在尝试让Java将Epoch(时间戳)写入.session文件(不要问)。它似乎没有做任何事情。这就是我所拥有的:

    gamesession = new File(SESSION_LOCATION);   // Sets the .session file

    if(gamesession.exists()){
        gamesession.delete();
        gamesession.createNewFile();

        FileWriter stream = new FileWriter(SESSION_LOCATION);
        BufferedWriter out = new BufferedWriter(stream);

        out.write(GetTimestamp());
        out.flush();
    }                       // These blocks write the Epoch to the .session file for later time
    else{
        gamesession.createNewFile();

        FileWriter stream = new FileWriter(SESSION_LOCATION);
        BufferedWriter out = new BufferedWriter(stream);

        out.write(GetTimestamp());
        out.flush();
    }

是的,该方法 DECLARED 抛出IOException(没有发生@ runtime)。问题是,我写的.session文件总是空着。我错了吗?请帮助我对此有所启发。谢谢你的时间。

仅供参考:正如我System.out.println(GetTimestamp())所做的那样,正确计算了纪元。

GetTimestamp()是我的方法。这是静态的。

1 个答案:

答案 0 :(得分:2)

您还需要确保调用out.close()方法。我注意到有时在处理文件时,如果你不关闭它们,内容就不会显示出来。

GetTimestamp()还会返回什么类型?根据{{​​3}},write方法接受一个应该是字符的int。我怀疑你的时间戳只是一个字符。