1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 24
|
|
1 | |
Считывание из файла последней строки23.03.2015, 10:42. Показов 9623. Ответов 10
Метки нет (Все метки)
Есть файл в нем хранится записи:
72 23.03.2015 10:37:28 7348537A889PB1 72 23.03.2015 10:37:29 7348537A889PB2 72 23.03.2015 10:37:30 7348537A889PB3 72 23.03.2015 10:37:31 7348537A889PB4 72 23.03.2015 10:37:32 7348537A889PB5 Надо определить последнюю строчку, и взять из нее значение 7348537A889PB5, файл всегда обновляется строки добавляются в конец файла.
0
|
23.03.2015, 10:42 | |
Ответы с готовыми решениями:
10
Считывание строки из файла до точки Считывание файла в массив без последней строки Считывание последней строки со спец-символом '\r' из текстового файла Функция: сравнение первой строки первого текстового файла и последней строки второго файла |
36 / 33 / 21
Регистрация: 11.07.2014
Сообщений: 390
|
|||||||||||
23.03.2015, 10:45 | 2 | ||||||||||
2
|
1276 / 858 / 255
Регистрация: 08.08.2014
Сообщений: 2,454
|
||||||
23.03.2015, 13:30 | 3 | |||||
На файле в 150Мбайт оба варианта мучаются около секунды, т.к. перебирают весь файл.
На базе RandomAccessFile последняя строка из того же файла получается за пару миллисекунд.
0
|
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 24
|
|
23.03.2015, 13:38 [ТС] | 4 |
0
|
1276 / 858 / 255
Регистрация: 08.08.2014
Сообщений: 2,454
|
|
23.03.2015, 13:45 | 5 |
Если честно, то я про RandomAccessFile сам узнал только что, попытавшись решить эту задачу.
http://docs.oracle.com/javase/... sFile.html На практике оказалось, что он реализует достаточно эффективный доступ доступ к файлам по позиции. По крайней мере в сравнении с последовательным перебором всех строк. По коду - встаём в самый конец файла и пытаемся считать две строки. Если вторая считалась успешно (не null и не пустая), то значит она и есть последняя строка файла. Если не считалась, то повторяем попытку с позиции на единицу меньше, чем конец файла. И так пока не достигнем успеха. P.S.: но там кривовато получилось. Если в файле всего одна строка или вообще строк нет, то будет беда. Сейчас доработаю.
0
|
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 24
|
|
23.03.2015, 13:58 [ТС] | 6 |
Ругается на String ReadLastLine(File file), The method ReadLastLine(File) from the type test is never used locally.
0
|
1276 / 858 / 255
Регистрация: 08.08.2014
Сообщений: 2,454
|
|||||||||||
23.03.2015, 14:04 | 7 | ||||||||||
Вторая попытка. Если в файле больше одной строки, то вернёт первую не пустую с конца. Если в файле всего одна строка, то вернёт её. Если файл пустой, то вернёт null.
0
|
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 24
|
|
23.03.2015, 14:14 [ТС] | 8 |
Последнюю строчку, достали, осталось значение например 7348537A889PB7, оно всегда будет состоять из 14 символов.
0
|
1276 / 858 / 255
Регистрация: 08.08.2014
Сообщений: 2,454
|
|||||||||||
23.03.2015, 14:16 | 9 | ||||||||||
Если значение отделено пробелом (не табуляцией), то так.
0
|
1 / 1 / 0
Регистрация: 10.11.2013
Сообщений: 24
|
||||||
23.03.2015, 14:20 [ТС] | 10 | |||||
10:37:26 7348537A889PB7 так выводит
Добавлено через 2 минуты
Допер
0
|
284 / 264 / 173
Регистрация: 27.07.2014
Сообщений: 584
|
||||||
23.03.2015, 14:26 | 11 | |||||
1
|
23.03.2015, 14:26 | |
23.03.2015, 14:26 | |
Помогаю со студенческими работами здесь
11
Определить, совпадают ли первое слово в первой строке файла с первым словом последней строки файла. Определить, совпадают ли первое слово в первой строке файла с первым словом последней строки файла Определить, совпадают ли первое слово в первой строке файла с первым словом последней строки файла Удаление последней строки из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |