考虑带缓冲区的InputStream,例如AudioInputStream(ieavailable()return> = 0) 输入流正在读取一个不断变化的文件(一个从互联网下载的文件,未下载的部分用零填充)。
然而,当它被唤醒时,如何确保它丢弃缓冲区(无用的零)并再次读取文件?
提前感谢
答案 0 :(得分:0)
我假设您使用AudioInputStream
创建FileInputStream
。你应该做的是:
PipedInputStream pipeIn = new PipedInputStream();
PipedOutputStream pipeOut = new PipedOutputStream(pipeIn);
AudioInpuStream ais = new AudioInputStream(pipeIn, ..., ...);
现在,当您下载更多文件时,您只需将其写入pipeOut
。