首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“等待”Java中的流

“等待”Java中的流
EN

Stack Overflow用户
提问于 2011-10-24 05:59:44
回答 2查看 1.9K关注 0票数 0

可能重复:

Is it possible to read from a Java InputStream with a timeout?

我在读一条小溪,它的源头可能是悬垂的。如果没有读取,我如何“等待”BufferedReader.readLine()返回一个字符串最多一段时间(例如5秒)并继续该程序?

EN

回答 2

Stack Overflow用户

发布于 2011-10-24 06:03:46

BufferedReader有ready()方法,该方法检查输入流是否已准备好读取。您可以将其与计时器类或其他东西结合使用。

票数 1
EN

Stack Overflow用户

发布于 2011-10-24 06:21:53

需要注意的是,这是一个IO阻塞调用。因此,中断当前执行此语句的线程将完全没有效果。

要做到这一点,一种干净的方法是通过将ExecutorService封装到可调用的实现中来使用一个来执行这个调用。通过对返回的未来调用get( timeout )方法,您既可以手动控制超时,也可以优雅地处理中断。

如果这个线程被中断,您将希望关闭底层资源,这样调用本身就会返回,并且不会泄漏线程。类似于myInputStream.close()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7871778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档