我需要处理一个不适合内存的大文件,或者即使它适合,我也不需要它全部在内存中,因为我只需要查找和修改它的某个部分。
这样做的最佳方法是什么?
这是一个调整大型文件中间而不将任何文件读入内存的示例。但是,如果您只想阅读一点内容,请参阅IO.sysread。
TestFile = '/tmp/test'
system "cp /usr/share/dict/words #{TestFile}; chmod +w #{TestFile}"
File.open TestFile, 'r+' do |io|
io.sysseek 1000000
io.syswrite 'EASTER EGG!!!'
end
system "grep EASTER.EGG #{TestFile}"
sysread 和 syswrite 在以下几种情况下很有用: