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