BufferedReader抛出java.io.IOException:Stream关闭

时间:2014-10-21 11:01:07

标签: java multithreading bufferedreader

我正在读取文件并将内容放入BlockingQueue()。

要检查从BlockingQueue()获取字符串的方法是否正确等待,我使用了Thread.sleep(10)。但它引发了“Stream closed”错误。

BufferedReader br = new BufferedReader(new FileReader(filePath));

for (String line; (line = br.readLine()) != null;) {
    Thread.sleep(10);
    queue.put(line);
}

几次读完后,我得到了:

java.io.IOException: Stream closed
    at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
    at java.io.BufferedReader.readLine(BufferedReader.java:292)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)

我在这里做的错误是什么? BufferedReader是否有特定超时?

编辑:遥感部分是,我正在从另一种方法中平行地读取该队列。

1 个答案:

答案 0 :(得分:2)

  

但它引发了“Stream closed”错误。

它抛出了这个错误,因为你已经关闭了流,可能在其他一些线程中。

请注意代码中的sleep()毫无意义。