写在ruby中的文件中间

4 ruby file

我在ruby中打开了一个带有选项a +的文件.我可以寻找文件的中间并从中读取但是当我尝试写入时,写入总是会结束.我如何写中间位置?

jpg = File.new("/tmp/bot.jpg", "a+")
jpg.seek 24
puts jpg.getc.chr
jpg.seek 24
jpg.write "R" 
jpg.seek 28
jpg.write "W" 
puts jpg.pos
jpg.close
Run Code Online (Sandbox Code Playgroud)

R和W都以文件末尾结束.

我知道我只能覆盖现有的字节,没关系,这就是我想做的事情.

Ale*_*lli 7

这种行为正是您对"a+"模式的要求:确保所有写入始终结束,同时允许读取和搜索(当然,在给定模式的情况下,仅寻求有意义的读取).使用"r+",如果你不希望所有的写操作总是走到尽头.