0
Rubyの遅いFile.each_line実装を回避しようとしています。Rubyで固定サイズのバッファを使ってテキストファイルを読み込む正しい方法は何ですか?
def parse
@file = File.open(@file)
@filesize = @file.stat.size
@buffer_size = 10485
@offset = @buffer_size
@counter = 0
@line_counter = 0
@file.seek(0, File::SEEK_END)
while @file.tell > 0
@file.seek([email protected], File::SEEK_END)
buffer = @file.read(@buffer_size)
buffer_line = buffer.split("\n")[1]
@counter += 1
puts @counter
@offset += @buffer_size
return if @offset > @filesize
end
end
各行の残りの部分を保存できるバッファを実装するにはどうすればよいかわかりません。
私はそれがそこに答えられたのを見ることができません。 – Istvan
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/225227では、「while((buf2 = f.read @bufsize)」で始まる外観を見てください。 。あなたが達成しようとしているもののミニ実装です。 ' – gioele