写在ruby中的文件中间

时间:2009-10-03 18:04:05

标签: 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

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

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

1 个答案:

答案 0 :(得分:7)

这种行为正是您使用"a+"模式所要求的行为:确保所有写入始终结束,同时允许阅读和搜索(当然,在给定模式的情况下,只寻求有意义的阅读)。如果您不希望所有写入始终结束,请使用"r+"