java BufferedReader未返回
我正在使用Java运行一个程序,并将程序的文本输出读入缓冲读取器。然后,我想通过执行以下操作打印出结果:
while((line=input.readLine()) != null){
System.out.println(line);
}
出于某种原因,执行此操作时,readLine()方法在文本的一半左右根本不会返回,程序会无限期地等待。然而,当直接从命令行运行这个程序时,它的输出与预期完全一样,只有100行左右的简单文本。是什么原因导致readLine()在阅读简单文本的中途无法返回
# 1 楼答案
您需要像这样将文本文档编码为UTF-8,然后使用扫描仪
实际上,有几种方法可以像这样对文本进行编码,但其重要性在于文本编码本身。一旦文档格式正确,您选择读取输入的对象和类将由您自行决定
# 2 楼答案
如果您正在读取文件系统中的文件,这可能是由于文件系统存在问题;e、 g.远程文件服务器没有响应
如果您正在从套接字读取数据,则可能是远程服务器尚未写入/刷新您尝试读取的数据,或者是网络问题导致数据无法通过
如果您正在从管道读取数据(例如,另一个程序的输出),则另一个程序尚未写入/刷新您尝试读取的数据
(另一种情况是从“设备文件”或“/proc”文件系统中的文件或环回文件系统中读取。在这些情况下,很难列举可能的原因。)