groovyでファイルの最後の行を取得しても大きな結果は得られません。groovyのファイルの最後の行を取得
groovyでファイルの最終行を取得するにはどうすればよいですか?テキストファイルの各行を
new(File("/home/user/somefile.txt").eachLine{
lastLine = it
}
.eachLineの繰り返し処理とeachLineは、ファイルを経由終了するまでlastLineが現在の反復に設定されています:
groovyでファイルの最後の行を取得しても大きな結果は得られません。groovyのファイルの最後の行を取得
groovyでファイルの最終行を取得するにはどうすればよいですか?テキストファイルの各行を
new(File("/home/user/somefile.txt").eachLine{
lastLine = it
}
.eachLineの繰り返し処理とeachLineは、ファイルを経由終了するまでlastLineが現在の反復に設定されています:
は、ここで私がなってしまったものです。かなり簡単。
def lines=new File("/home/user/somefile.txt").readLines()
def lastline=lines.get(lines.size()-1)
または、ファイルが危険なほど大きい場合:
def last=new File('/home/user/somefile.txt').withReader { r-> r.eachLine {it} }
アスカーの答えとほぼ同一である
'if(it!= null){'は必要ありませんか? –
@tim_yatesさんが私の投稿を更新しました。ありがとう –
groovyでファイルの最終行を取得するにはどうすればよいですか?
ファイルの内容によって異なります。ファイル内の行が固定長である場合は、ファイルサイズを調べ、各行の長さで割り、ランダムファイルアクセスを使用してファイルの最後の行にジャンプして読み込むことができます。それはファイル全体を読むよりも効率的です。行の長さがわからない場合は、おそらくファイル全体を読んで、最後に読んだ行の前にすべてを破棄しなければならないでしょう。
この質問がSpockとどのように関連しているかわかりません。タグを削除できますか? – kazanaki