Я Не Получаю Результат, который я Ожидаю Используя readLine () в Java

В вашем вопросе есть некоторые противоречия. Вы говорите, что используете iText 5.3.5, но упоминаете com.lowagie.text.pdf, который использовался только в версии 2.1.7 и более ранних версиях.

Вы также ожидаете, что версии, предшествующие iText 7, поддерживают Tamil. Это не тот случай. Если вам нужна поддержка тамилов, вам понадобится хотя бы iText 7 (доступно как программное обеспечение AGPL) в сочетании с PdfCalligraph: http://itextpdf.com/itext7/pdfCalligraph

Возьмите посмотрите на следующий снимок экрана, чтобы увидеть разницу между написанием Тамил без аддона против тамильского с аддоном:

PdfCalligraph - это аддон к iText 7. Он недоступен в качестве программного обеспечения с открытым исходным кодом.

5
задан Charles Menguy 25 April 2012 в 23:10
поделиться

3 ответа

От моего понимания этого readLine должен возвратить пустой указатель в первый раз, когда никакой вход не вводится кроме линейного окончания, как '\r'.

Это не корректно. readLine возвратится null если конец потока достигнут. Таким образом, например, если Вы читаете файл и концы файла, или если Вы читаете из сокета и завершений сокета.

Но если Вы просто читаете консольный вход, поражение клавиши Return на Вашей клавиатуре не составляет конец потока. Это - просто символ, который возвращается (\n или \r\n в зависимости от Вашей ОС).

Так, если Вы хотите повредиться и на пустой строке и на конце строки, необходимо сделать:

while (line != null && !line.equals(""))

Кроме того, Ваша текущая программа должна работать как ожидалось при передаче по каналу некоторого файла непосредственно в нее, как так:

java -cp . Echo < test.txt
10
ответ дан 18 December 2019 в 13:21
поделиться

Никакой вход не является тем же как концом потока. Можно обычно моделировать конец потока в консоли путем нажатия Ctrl+D (AFAIK, некоторые системы используют Ctrl+Z вместо этого). Но я предполагаю, что это не то, что Вы хотите, таким образом, лучше тестируют на пустые строки дополнительно к пустым строкам.

3
ответ дан 18 December 2019 в 13:21
поделиться

Существует хорошее апачское свободное городское население библиотека Ленга, которая имеет хороший API для общего :) действий. Вы могли использовать, статически импортируют StringUtils и используют его метод isNotEmpty (Строка) для получения:

while(isNotEmpty(line)) {
    System.out.println(line);
    line = br.readLine();
}

Это могло бы быть полезно когда-нибудь:) В этом lib существуют также другие полезные классы.

1
ответ дан 18 December 2019 в 13:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: