java在打印字符时陷入循环
我有一个IBM Notes Java代理。 在这个代理中,我将数据发布到一个PHP文件中。 这个PHP最终会发出类似“记录更新成功”这样的回音 现在,在我的java代理中,在我文章的末尾,我有以下内容:java在打印字符时陷入循环,java,Java,我有一个IBM Notes Java代理。 在这个代理中,我将数据发布到一个PHP文件中。 这个PHP最终会发出类似“记录更新成功”这样的回音 现在,在我的java代理中,在我文章的末尾,我有以下内容: for (int c; (c = in.read()) >= 0;){ System.out.print((char)c); } 但在我的日志文件中,我现在看到了这个 24-01-2017 13:57:45 AMgr: Agent printing:
for (int c; (c = in.read()) >= 0;){
System.out.print((char)c);
}
但在我的日志文件中,我现在看到了这个
24-01-2017 13:57:45 AMgr: Agent printing: R
24-01-2017 13:57:45 AMgr: Agent printing: e
24-01-2017 13:57:45 AMgr: Agent printing: c
所以它会单独打印每个字符,这是为什么??使用
java.util.Scanner
将回显数据作为InputStream
,然后只使用该字符串值执行System.out.println()
。您不需要逐个循环浏览每个角色
或者,您可以创建一个新字符串并执行string+=字符代码>在每次递归期间
String output = "";
for(int c = 0; (c = n.read()) >= 0;){
output += (char)c;
}
System.out.print(output);
对于像public int read()
这样的方法,您期望得到什么?它只返回字符,您直接在输出流中打印它。问题是什么?in从何而来?@Cruncher从外观上看,bboni使用的任何记录器系统都会将每个system.out.print转换为自己的行(并在其前面添加时间戳)。@bboni我肯定是这样的。无论如何,解决办法很简单。将结果生成字符串,并且只打印一次。很明显,您的日志记录器并不关心打印与打印,什么卡在循环中?如果您命令print(c)
,日志正确地表示“printing:c
”,意思类似于“使用参数c
调用了方法“print”。打印是单独调用的,因此日志记录也是单独完成的。