Неразбериха в Java и JVM (если Java может обрабатывать большие строки, почему не может работать как обычно?) - PullRequest
0 голосов
/ 10 августа 2009

Недавно я столкнулся с проблемой в Groovy, где я пытался работать с очень большой строкой (100 тыс. Символов). Я получил сообщение об ошибке, в котором говорилось, что длина строки не может превышать 65 535 символов. Я попытался найти дополнительную информацию и наткнулся на эту ссылку, в которой говорилось, что проблема в JVM - http://jira.codehaus.org/browse/GROOVY-2382.

Я думал, что Java работала и на JVM, и в Java у меня были строки намного большего размера. Просто пытаюсь понять. Может кто-нибудь пролить свет на это для меня. Заранее спасибо.

Sean

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

Это ограничение для строковых литералов, т.е. строк в исходном коде.

Это не проблема для строк, читаемых из файла или другого InputStream.

Вы должны переместить вашу огромную строку в отдельный текстовый файл.

4 голосов
/ 10 августа 2009

Глядя на источник для java.lang. Строка ограничивает Integer.MAX_VALUE, который довольно большой.

Так что, да, предел есть, но 100К нет рядом с ним.

Предел, к которому относится ошибка Groovy, ограничен строковым литералом, это не то же самое, что создание очень большой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...