PipedInputStream无法从PipedOutputStream中读取

时间:2016-11-02 17:52:43

标签: java stream

所以我试图将涉及写入和读取磁盘的操作移动到只写入管道流。这是旧系统,它在两个线程上运行:

写作:

AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, new File(name));

读:

Wave wave = new Wave(new File(name));

这是新系统:

写作:

PipedInputStream pipedInputStream = new PipedInputStream();
PipedOutputStream pipedOutputStream = new PipedOutputStream();
pipedOutputStream.connect(pipedInputStream);

AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, pipedOutputStream);
ReadingThread.queue.add(pipedInputStream);

读:

Wave wave = new Wave(new BufferedInputStream(queue.poll());

旧系统正常运行,数据通过,但在新系统中数据无法到达另一端。 Wave可以通过文件或输入流初始化。

0 个答案:

没有答案