Поведение подтверждено. Странно, должно быть что-то связанное с выходным потоком, завернутым в eclipse. Затмение 3.5 мной. Возможно, внутренняя буферизация выбрасывает выходные данные, если они неправильно очищены () или слишком широки для строки.
package tests;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
public class EclipsePrint {
public static void main(String[] args) {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
PrintStream out = System.out;
System.setOut(new PrintStream(new BufferedOutputStream(bout), true));
System.out.print("start: ");
for (int i = 0; i < 10000; i++) {
// if (i > 1000 && i < 1010)
System.out.print(i + " ");
}
System.out.println("finish");
out.println(bout.size());
out.println(bout.toString());
bout = new ByteArrayOutputStream();
System.setOut(new PrintStream(new BufferedOutputStream(bout), true));
System.out.print("start: ");
for (int i = 0; i < 1000; i++) {
// if (i > 1000 && i < 1010)
System.out.print(i + " ");
}
System.out.println("finish");
out.println(bout.size());
out.println(bout.toString());
}
}
В eclipse есть настройки консоли на Run/Debug:Console:console buffer size (characters)
, что позволяет использовать до 10 ^ 6 символов в качестве буфера консоли. Ваш первый цикл превышает его.