Как прочитать последнюю строку онлайн-файла, из конца файла - PullRequest
2 голосов
/ 10 февраля 2012

все:

Интересно, как быстро прочитать последнюю строку онлайн файла, такого как "http://www.17500.cn/getData/ssq.TXT",

Я знаю класс RandomAccessFile, нокажется, что он может читать только локальные файлы. Любое предложение? TKS заранее.

1 Ответ

3 голосов
/ 10 февраля 2012

Вам нужно будет прочитать весь читатель и сохранить только последнюю строку:

String line;
String lastLine = null;
while ((line = reader.readLine()) != null) {
    lastLine = line;
}

РЕДАКТИРОВАТЬ: как говорит Иоахим в своем комментарии, если вы знаете, что последняя строка никогда не будет длиннеечем (например) 500 байт, вы можете установить заголовок Range в вашем HTTP-запросе на -500 и, таким образом, загрузить только последние 500 байт.Можно использовать тот же алгоритм, что и выше.

Однако я не знаю, будет ли он правильно обрабатывать поток, начинающийся с середины многобайтового закодированного символа, если кодировка многобайтовая (как UTF-8).С ASCII или ISO-8859-1 у вас не возникнет никаких проблем.

Также обратите внимание, что сервер не обязан выполнять запрос диапазона и может вернуть весь файл.

httpConnection.setRequestProperty("Range","-500");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...