Предел символов для System.out.println () в Java - PullRequest
7 голосов
/ 18 января 2012

Есть ли какой-либо символьный лимит для вывода оператора System.out.println(String x) в Java?

Когда я пытаюсь распечатать некоторый XML из вызова веб-службы, используя System.out.println(), на консоли выводится только его часть.

XML-строка, которую я пытаюсь напечатать, огромна.

Почему это происходит?

Ответы [ 6 ]

18 голосов
/ 18 января 2012

Испытываете ли вы это в Eclipse?Если да:

РЕДАКТИРОВАТЬ :

  1. Перейдите в «Окно»> «Установки»> «Выполнить / отладить»> «Консоль»
  2. .В качестве альтернативы вы можете увеличить размер буфера консоли.)

Источник

3 голосов
/ 18 января 2012

Вы ограничены максимальным размером строки Java.Это все.Это должно быть эквивалентно длине Integer.MAX_VALUE (2147483647), которая является максимальным размером массива, поскольку строка является массивом символов.

В противном случае это предел емкости консоли Eclipse, как говорили другие.

3 голосов
/ 18 января 2012

Если вы используете Eclipse, это связано с ограничением емкости выходной консоли Eclipse. См. Этот вопрос: Как увеличить емкость выходной консоли Eclipse?

3 голосов
/ 18 января 2012

Я предполагаю, что вы видите только последнюю часть строки, потому что консоль имеет ограниченное количество строк, которые она может отображать.

Рассмотрите возможность записи в файл из Java или перенаправления стандартного вывода из программы в файл:

java com.foo.bar.Main > output.log
2 голосов
/ 18 января 2012

Я знаю, что при печати очень длинных строк в консоли Eclipse часть или вся строка становятся невидимыми. Вы можете разбить ваш XML на куски. Если вы видите только хвостовую часть xml, то я предполагаю, что ваш консольный буфер обрезает ее часть. @Quaylar разместил ссылку об этом.

0 голосов
/ 18 января 2012

На самом деле явного максимума нет, но смещение в строке определяется значением int, поэтому Integer.MaxValue будет одним из ограничений IMO. Это также будет зависеть от вашей доступной памяти.

Лучше всего будет выводить поток и записывать порции за раз, чтобы убедиться, что вы получите все это.

...