我在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都以文件末尾结束。
我知道我只能覆盖现有的字节,没关系,这就是我想做的事情。
答案 0 :(得分:7)
这种行为正是您使用"a+"
模式所要求的行为:确保所有写入始终结束,同时允许阅读和搜索(当然,在给定模式的情况下,只寻求有意义的阅读)。如果您不希望所有写入始终结束,请使用"r+"
。