2009-05-18 8 views
4

一時ファイル(temp.txt)に文字列を書いていますが、そのファイルを開いた後に削除する必要があるawtウィンドウのボタンをクリックしてそのファイルを開く必要があります私はこれをします?Javaの一時ファイルを開きます

これは、私はJavaで一時ファイルを作成するために使用されているコードです:

File temp = File.createTempFile("temp",".txt"); 

FileWriter fileoutput = new FileWriter(temp); 
Bufferedwriter buffout = new BufferedWriter(fileoutput); 

答えて

19

によって作成されたファイル:

File temp = File.createTempFile("temp",".txt"); 

javadocを参照し、削除されません、あなたはそのJVMが終了時にファイルを削除します

temp.deleteOnExit(); 

を呼び出す必要があります...

+0

ボタンをクリックしてファイルを開くにはどうすればいいですか?temp.deleteOnExitはファイルを閉じるかmyrunningアプリケーションを閉じるときに削除されますか? –

+0

私は彼が、アプリケーション終了時にファイルを削除するのではなく、ファイルを削除したいと思っています。 –

+0

したがって、あるファイルにデータを書き込み、それを閉じたいとします。 2 - 後者はこのファイルを開き、データをウィンドウに表示します。 3 - 誰かがウィンドウ内のデータを見たら、このファイルを削除してください...私はそれを手に入れましたか? – pgras

4

どのようになりますか:

if (!temp.delete()) 
{ 
    // wasn't deleted for some reason, delete on exit instead 
    temp.deleteOnExit(); 
} 
0

ボタンをクリックしたときの動作を実行するには、このようなコードの何かが必要になります:あなたはおそらくGoogleと多くの例を見つけることができます

button.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
      fileOperation(); 
     } 
    } 
... 
private void fileOperation() { 
    ... do stuff with file ... 
} 

を。一般に、匿名の内部クラスコードは短く、イベントとコンテキストを外部クラスにとって意味のある操作に変換するだけです。

現在、ファイルを閉じた後にFile.deleteで手動でファイルを削除する必要があります。あなたが本当に望んでいれば、閉じることができます、例えば、RandomAccessFileと終了後に削除するにはcloseを無効にします。私はdelete-on-closeがJDK7上のファイルを開くためのモードであると考えていた(それが入っているかどうかは分かりません)。

コードのようにファイルに書き込むだけでは意味がありません。おそらく、書き込みストリームではなく読み取りストリームを閉じた後でファイルを削除したいと思うでしょう。可能であれば、一時ファイルを避けることは悪い考えではありません。

+0

しかし、どうすればファイルを開くことができますか?ボタンをクリックする(操作はテキストファイルをダブルクリックしてみると似ています)どのようにプログラムでこれを行うことができますか? –

+0

ああ、ボタンをクリックしてアクションを実行する方法は? –

関連する問題