2017-12-01 11 views
0

임시 오디오 파일을 만들고 해당 파일에서 데이터를 읽은 다음 삭제하는 클래스의 프로그램을 작성하고 있습니다. 파일을 삭제하는 것 외에는 모든 것이 작동합니다. 파일을 삭제하려고 시도하면 file.delete()false을 반환합니다. 나는 정확히 무엇이 잘못되었는지를 알아 내고 java.nio Files를 사용하려고 시도했고, 다른 프로세스가 파일을 열었다는 것을 반환했다. 내 코드를 살펴본 후 파일을 열린 채로 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 A의 audioInputStream.close()을 배치 노력했다.

파일을 닫은 후 입력 스트림을 열어 두는 이유는 무엇입니까? 당신이 BufferedInputStream을 래핑 경우가해야

답변

-1

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

파일은 NIO

import java.nio.file.Files;

+0

에서 클래스 그것은 왜 작동해야입니다 작동? – EJP