日期:2014-05-16  浏览次数:20787 次

在Windows上使用AudioInputStream导致文件被占用无法delete的解决办法
最近在研究通过HTML5录制音频直接上传到后台保存文件

使用到了AudioInputStream,现在是使用binary 二进制的blob来上传然后反复的操作生成的音频文件,但是在Windows下,文件写了一次之后就不能再往里面操作了,进程被占用,导致无法操作原有文件

解决办法就是
AudioSysten.getAudioInputStream();
方法里面不直接使用File对象

而是FileInputStream读取File对象
再通过BufferedInputStream来加载FileInputStream
然后AudioSysten.getAudioInputStream();来加载这个BufferedInputStream,这样的话,就不会有此类问题了

这里注意,页不能直接使用FileInputStream,否则会报
java.io.IOException: mark/reset not supported的错误

因为FileInputStream没有缓冲