我正在使用文件显示流内容来缓冲它(因为它可能足够大以将其保存在RAM中)。我有两个线程:第一个从服务器下载文件并将其写入本地存储,第二个读取该文件并显示内容。
问题是,当第二个线程到达文件末尾时,EOFException
方法会抛出DataInputStream.readFully()
。有没有办法让它等待第一个线程写入足够的数据而不是抛出异常?
答案 0 :(得分:0)
在您从文件中读取之前检查EOF。或者在阅读声明周围添加try ... catch(EOFException ex)
。
答案 1 :(得分:0)
同步线程。有一种可能的方法。
答案 2 :(得分:0)
您是否尝试过使用InputStream的available()方法获取可用的字节数,然后使用DataInputStream的read(byte [] b)和byte []返回可用的字节数的长度?我实际上没有试过这个,但似乎它可能会起作用。