2012-04-07 272 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