创建文件并向其中填充数据后,在关闭之前,需要读取部分数据并计算校验和。问题是您无法在关闭文件之前读取数据。代码片段如下。
我的问题是如何创建文件,写入数据,读取文件的一部分,然后关闭它?一种可能的解决方案是在写入文件之前使用缓冲区,但如果文件很大,例如 MB、GB、TB、PB,则不方便。
begin
File.open(@f_name,"w+") do |file|
@f_old_size.times do
file.write "1"
end
file.flush
file.sync
#################
# read file fails
# before close
#################
while line = file.gets
puts line
end
end
rescue => err
puts "Exception: #{err}"
end
#####################
# read file successfully
# after close it
#####################
File.open(@f_name,"r") do |file|
line = file.gets
puts line
end