2012-04-07 164 views
0

考虑具有缓冲InputStream的,例如的AudioInputStream(i.e.available()返回> = 0) InputStream的正在读取一个文件改变(其保持从互联网和undownloaded部分下载包装用零的文件)。如何用缓冲区删除输入流的缓冲区?

  • 当读取到没有下载的部分,等待()将 叫
  • 当一部分被下载,请通知()将被称为

然而,当它是唤醒,如何确保它丢弃缓冲区(无用零),并再次读取该文件?

预先感谢

+0

我们可以看到一些代码吗? – Jeffrey 2012-04-07 01:48:28

+0

你可以给我们关于AudioInputStream的更多信息吗? – dash1e 2012-04-07 01:52:35

+0

@ dash1e ['AudioInputStream'](http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/AudioInputStream.html) – Jeffrey 2012-04-07 01:53:51

回答

0

我假设你正在创建AudioInputStreamFileInputStream。你应该做的是这样的:

PipedInputStream pipeIn = new PipedInputStream(); 
PipedOutputStream pipeOut = new PipedOutputStream(pipeIn); 
AudioInpuStream ais = new AudioInputStream(pipeIn, ..., ...); 

现在你下载多个文件的所有你需要做的就是把它写入pipeOut