InputStream.read()卡住了

时间:2017-05-22 17:35:00

标签: java file copy inputstream infinite-loop

我已经搜索过这个问题,但所有人都在使用套接字。 我只是使用一个固体文件,所以一切都应该已经在Stream ... 这是我的代码:

  bottom:0

IOUtils.toByteArray(din2)​​卡住某些文件,并且适用于其他文件,所以我检查了里面的内容,并且这个函数在调试模式下卡住了:

            AudioInputStream in = null;
            MpegAudioFileReader mp = new MpegAudioFileReader();
            in = mp.getAudioInputStream(new File(this.directory + currentBeatmaps.get(0).getAudioFileName()));
            AudioFormat baseFormat = in.getFormat();
            AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
                    baseFormat.getSampleRate(),
                    16,
                    baseFormat.getChannels(),
                    baseFormat.getChannels() * 2,
                    baseFormat.getSampleRate(),
                    false);
            final AudioInputStream din2 = AudioSystem.getAudioInputStream(decodedFormat, in);

            long length = din2.getFrameLength();
            byte[] bytes = IOUtils.toByteArray(din2);
            in.close();
            InputStream is1 = new ByteArrayInputStream(bytes);

            AudioInputStream din = new AudioInputStream(
                    is1,
                    decodedFormat,
                    length
            );

在第一次迭代时执行input.read(buffer)时它会死掉。 我再说一遍,这适用于某些文件而不适用于其他文件,所以我不知道如何处理这个...... 如果有人至少可以找到一个解决方案,检测它何时会这样做,这样我就可以打印一个很棒的错误(这部分对我的软件并不重要)

0 个答案:

没有答案