2017-12-01 17 views
0

一時的なオーディオファイルを作成し、そのファイルからデータを読み込んでから削除するクラスのプログラムを作成しています。私は、ファイルを削除する以外はすべて動作しています。ファイルを削除しようとすると、file.delete()falseを返します。私はjava.nioファイルを使用して何が間違っていたのかを正確に把握しようとしましたが、そのファイルを開いた別のプロセスが返されました。私のコードを見て、ファイルを開いたままAudioInputStreamに絞った。 AudioInputStreamを作成する直前にファイルを削除することはできますが、ファイルを削除しようとする前にストリームを閉じるにもかかわらず、ファイルを作成した後でファイルを削除することはできません。ファイルからAudioInputStreamを作成した後にファイルを削除できません

if (file != null && file.isFile()) 
{ 
    try 
    { 
     audioInputStream = null; 
     try 
     { 
      audioInputStream = AudioSystem.getAudioInputStream(file); 
     } 
     catch (Exception e) 
     { 
      System.out.println(e); 
     } 
     finally 
     { 
      audioInputStream.close(); 
     }  
     System.out.println("Attempted to delete wav file. Succesfull = " + file.delete()); 
    } 
} 

私も同様の結果とfinallyでキャッチしていない後audioInputStream.close()を配置しようとしています。

ファイルを閉じた後に入力ストリームを開いたままにしているのはなぜですか?あなたはBufferedInputStreamをで包まれたならばそれが必要

答えて

-1

audioInputStream = AudioSystem.getAudioInputStream(new BufferedInputStream(Files.newInputStream(file.toPath()))); 

ファイルがNIO

import java.nio.file.Files;

+0

からクラスそれはなぜ動作するはずです動作しますか? – EJP

関連する問題