我正在读取文件并将内容放入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
是否有特定超时?
编辑:遥感部分是,我正在从另一种方法中平行地读取该队列。
答案 0 :(得分:2)
但它引发了“Stream closed”错误。
它抛出了这个错误,因为你已经关闭了流,可能在其他一些线程中。
请注意代码中的sleep()
毫无意义。