我不知道为什么在运行这个程序时eclipse没有在控制台上打印任何东西。
public class StringOptimization {
public StringOptimization() {
}
public static void main(final String[] args) {
final StringOptimization optimization = new StringOptimization();
final String sampleArray[] = new String[60000];
for (int i = 0; i <= 50000; i++) {
sampleArray[i] = "i";
}
final String finalString = optimization.addStringItems(sampleArray,
true);
System.out.println(finalString);
}
public String addStringItems(final String[] items,
final boolean forceUpperCase) {
final StringBuilder returnValue = new StringBuilder();
for (final String item : items) {
returnValue.append(item);
}
return forceUpperCase ? returnValue.toString().toUpperCase()
: returnValue.toString();
}
}
答案 0 :(得分:2)
控制台中保留的字符数有一个可配置的限制,通常约为80000个字符。这意味着您的行被打印并立即再次丢弃。
在“偏好设置”中增加此设置。
答案 1 :(得分:1)
感谢Thorbjorn的提示,设置缓冲区限制对我不起作用所以我开始在首选项页面上玩其他选项,当我选中Fixed width console
时。 eclipse开始正确显示输出。但我仍然会接受你的回答,因为你指出了我正确的方向。
答案 2 :(得分:0)
增加控制台缓冲区大小是可以的。但是如果控制台缓冲区的最大限制(等于 1000000 )也会耗尽,那么将再次进行覆盖。
其他解决方案是将控制台输出重定向到外部文件。此文件没有大小限制。对于更长的构建(如Maven构建等),我使用此方法。
参考这些链接
How can we redirect a Java program console output to multiple files?
请注意,您可以同时将输出重定向到控制台和外部文件。