gpt4 book ai didi

java - Java/Scala 中 readline 的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:38:22 25 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题。我正在尝试读取正在执行的命令的结果。该代码永远不会到达 println 语句。如果到达输出末尾,它只是“挂起”程序。没有失败,没有异常(exception)。

我的项目是 Scala 和 Java 的混合体。因此,解决方案采用哪种语言并不重要。我两者都尝试过。我的项目的编码是Cp1252。

这是我的代码

var fileScript = Runtime.getRuntime().exec(PathOfScript)
var isr:InputStreamReader = new InputStreamReader(fileScript.getInputStream())
var in = new BufferedReader(isr)
var line:String = ""
try {
while ({line = in.readLine(); line!= null}) {
println("line: "+line)
}
println("OUTSIDE !!!");
in.close();
}

最佳答案

这很奇怪...我的 Java 版本运行得很好:

        InputStreamReader isr = new InputStreamReader(new FileInputStream("c:\\anyfile"));
BufferedReader in = new BufferedReader(isr);
String line = "";
try {
while ((line = in.readLine()) != null) {
System.out.println("line: "+line);
}
System.out.println("OUTSIDE !!!");
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}

我认为问题出在 fileScript 中:如果它提供了一个流并且没有关闭它,那么您将永远不会在 while 循环中得到 null。检查那部分。尝试使用常规文件(就像我在示例中所做的那样)。如果有效,则问题肯定出在 fileScript 对象中。

关于java - Java/Scala 中 readline 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16445681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com