类似File.open
背后具体做了什么事情呢?
我很好奇假设一个文件有 2G 大,那么会把它一次性读入内存中么?
类似这样写是否就可以做到只读取指定行号的文件内容了:
file = File.open(log_file)
log_file = logcat_filter(file, @filter_level, @filter_tag)
def log_file_content(log_file, start_line, end_line)
log_file_content = []
index = 0
log_file.each do |line|
index += 1
# 只读取start_line到end_line的数据
next if !start_line.blank? && index < start_line.to_i
break if !end_line.blank? && index >= end_line.to_i
log_file_content << line unless line.blank?
end
log_file_content
end