2009-10-03 2 views
4

루비에 옵션 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 모두 파일의 끝에 있습니다.

기존의 바이트 만 덮어 쓸 수 있다는 것을 알고 있습니다. 그게 내가 원하는 것입니다.

답변

7

이 동작은 정확히 "a+" 모드에서 요청하는 것입니다. 모든 쓰기가 항상 끝까지 수행되고 읽기 및 검색이 가능하도록합니다 (모드를 읽은 경우에만 의미있는 읽기를 원합니다). 모든 쓰기가 항상 끝나지 않게하려면 "r+"을 사용하십시오.

관련 문제