java - InputStream 读取“合理”长度的文本,避免阻塞
问题描述
我正在尝试从用户输入中逐个字符地读取,如下所示:
while ((i = System.in.read()) != -1) {
// do stuff with input...
char c = (char)i;
}
正如预期的那样,这会阻塞,直到到达流的末尾。从文档InputStream允许available()
给出数据源中剩余字节的估计值。
使用这种方法,即检查System.in.available() > 0
,每当遇到换行符时都会导致退出 while 循环。
我需要逐个字符地读取用户输入的“合理”长度的文本。我可以假设来自用户输入的任何此类文本的长度都以 some 为界N
。
如果可能的话,如何使用接近我最初打算的解决方案来最好地实现这一点?到目前为止,我遇到的问题似乎没有解决这个问题,但我可能弄错了。提前致谢。
解决方案
推荐阅读
- html - 无序列表布局和之后的段落的问题
- reactjs - React Material-UI - TablePagination - onChangePage 不是函数
- python - TypeError:不支持的格式字符串在 Python 中使用 f-string 传递给 NoneType.__format__
- javascript - 如何在Javascript中缩短多个if else语句
- android - Android 中的 URL 文件
- spring - 更正应用程序的类路径,使其包含一个兼容的 org.springframework.vault.support.SslConfiguration 版本
- django - 找不到 Django 中 TemplateResponse 返回的模板的页面
- c++ - 具有父类和子类设置的 C++ 循环依赖
- bash - Bash/Awk:使用重叠坐标在两个文件中查找常见易位
- javascript - 在 ReactJs 中使用 useEffect() 和标签