System.out.println(String x)
Java语句的输出是否有字符限制?
当我尝试使用 打印来自 Web 服务调用的一些 XML 时System.out.println()
,实际上只有一部分打印在控制台中。
我要打印的 XML 字符串很大。
为什么会这样?
您受到 Java 字符串的最大大小的限制。就这样。这应该等效于长度 Integer.MAX_VALUE (2147483647),它是数组的最大大小,因为 String 是 char 数组。
否则,正如其他人所说,这是 Eclipse 控制台容量限制。
我的猜测是您只能看到字符串的最后一部分,因为控制台可以显示的行数有限。
考虑从 Java 记录到文件,或将程序的标准输出重定向到文件:
java com.foo.bar.Main > output.log
如果您使用的是 Eclipse,那是因为 Eclipse 输出控制台的容量有限制。看到这个 SO 问题:如何增加 Eclipse 输出控制台的容量?
我知道在 Eclipse 控制台中打印很长的字符串会导致部分或全部字符串变得不可见。您可能希望将 xml 分成块。如果您只看到 xml 的尾部部分,那么我猜它是您的控制台缓冲区修剪掉它的一部分。@Quaylar 发布了一个关于此的链接。
实际上并没有明确的最大值,但字符串中的偏移量由 int 确定,因此 Integer.MaxValue 将是 IMO 的一个限制。它还取决于您的可用内存。
您最好的选择是一次流式传输输出和写入部分,以确保您获得所有信息。