2012-04-04 7 views
2

ANSWER: intをファイルに直接書き込むことはできません。最初に文字列に変換してください。Java - バッファリングされていないWriter(flush()の後)


オリジナル質問:

私は、これはnooby質問のように聞こえるかもしれないことを知っているが、私はオンにどこにも持っています。

私は、Javaに.sessionファイル(尋ねないでください)にEpoch(タイムスタンプ)を書き込ませようとしています。それは何もしていないようです。ここで私が持っているものです。

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(); 
    } 

はい、この方法は、(どれもランタイム@発生していない)IOExceptionをスローするを宣言されています。問題は、私が書いている.sessionファイルが常に空になることです。私は間違っている?私はこれを少し光らせてください。御時間ありがとうございます。

FYI:エポックは、System.out.println(GetTimestamp())と正しく計算されます。

GetTimestamp()はMYメソッドです。静的です。

+0

あなたが書いているディレクトリにファイルを書き込むための適切な権限を持っていますか? – Joris

+0

はい。少なくとも私はすべきです。 –

+0

このコードは実行時に例外を生成しますか?もしそうなら、我々はそれを見ることができるだろうか? – mfrankli

答えて

2

out.close()メソッドにも電話する必要があります。私はあなたがそれらを閉じないとファイルを扱うときに内容が表示されないことが時々気づいた。

GetTimestamp()も返されますか? BufferedWriter APIによると、writeメソッドは文字であると思われるintをとります。私は、あなたのタイムスタンプが単一の文字であるとは思わない。

+0

GetTimestampはintを返します。 –

+0

'BufferedWriter'は' Writer'から継承したメソッドシグネチャ 'write(String)'も実装しています。 –

+0

代わりに文字列を書き込もうとします。お知らせいたします。 –