Как скрипт Scala, который считывает файл журнала 5G с сетевого диска, должен быть изменен, чтобы читать последние строки x (например, «хвост» в Unix)?Как скрипт Scala, который считывает файл журнала 5G с сетевого диска, должен быть изменен, чтобы читать последние строки x (например, «хвост» в Unix)?
::#!
@echo off
call scala %0 %*
goto :eof
::!#
import scala.io.Source
if (args.length > 0) {
for (line <-Source.fromFile(args(0)).getLines)
if(line.contains("percent")){
print(line)
}
}
Чтение всего файла 5G по сети и сброс всех, кроме последних 5 строк, кажется идеальным. – copumpkin
Это не так. Вам нужно будет прочитать блоки байтов с конца, пока не получите необходимое количество строк, чтобы сделать это правильно, используя пару стеков для строк - один для текущего блока, один для общего. Это требует прохождения через библиотеку ввода-вывода Java, которая так ужасна, что я не буду касаться, не заплатив за нее. :-) –
Также невозможно прочитать из файла назад, если вы не знаете, что кодировка является фиксированной длиной –