gpt4 book ai didi

Java:输入流中的垃圾

转载 作者:行者123 更新时间:2023-12-02 03:50:12 24 4
gpt4 key购买 nike

我编写了一个小型 Java 函数,它调用另一个 Java 程序并显示其输入。

private static void call() throws Exception 
{
int line;
///Other stuff here
Process p2= Runtime.getRuntime().exec("java SelfModifying");
InputStream is = p2.getInputStream();
//p.waitFor();
while ((line = is.read()) != -1) {
System.out.println("result: " + line);
}
Runtime.getRuntime().exit(0);
}

调用的程序应该返回一个 int 值:'10'。
相反,我得到 4 行:结果:49结果:48结果:13结果:10

其他三个值从哪里来?它们是确定性的,但似乎来自输入。当我单独运行该程序时,它不会返回这 3 行。

最佳答案

您正在从流中读取单个字节:

  • 49 是 ASCII '1'
  • 48 是 ASCII '0'
  • 13 是 ASCII '\r'
  • 10 是 ASCII '\n'

因此文件的内容为 10\r\n(10,后跟 Windows 换行符)。

您应该将 is 包装在扫描仪中:

Scanner scanner = new Scanner(is, "UTF-8");
System.out.println(scanner.nextInt());

关于Java:输入流中的垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945637/

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