1
열려있는 파일에서 포인터를 이동해야합니다. 이렇게하면 어떻게 할 수 있습니까?파일 포인터를 이동하는 방법
File.open('example.txt', 'r+') do |f|
contents = f.read[0...-1]
f.rewind
f.write contents + 'end'
end
열려있는 파일에서 포인터를 이동해야합니다. 이렇게하면 어떻게 할 수 있습니까?파일 포인터를 이동하는 방법
File.open('example.txt', 'r+') do |f|
contents = f.read[0...-1]
f.rewind
f.write contents + 'end'
end
f.seek(-1, IO::SEEK_END)
을 시도해보십시오
나는이 작업을 완료하는 데 관리 업데이트 있지만 자세한 비효율적 보이는 내 예제에서
File.open('example.txt', 'a+') do |f|
f.move_pointer -1
f.write 'end'
end
나는 내 텍스트의 마지막 문자를 교체해야 .
는 (나는 http://ruby-docs.com/docs/ruby_1.9.3/index.html에서 이걸 발견)
편집
나는 이런 식으로 개행로 끝나는 파일의 마지막 (비 LINEBREAK) 문자를 덮어 쓸 수 있었다 :
File.open('example.txt', 'r+') do |f|
# go back 2 from the end, to overwrite 1 character and the final \n
f.seek(-2, IO::SEEK_END)
f.write("end\n")
end
그게 작동하지 않습니다. 오프셋 값과 관계없이 텍스트를 바꾸는 대신 파일 끝에 파일을 씁니다. – leemour
을 'IO # seek '이 필요한 것입니다. –
http://ruby-doc.org/ atm :( – leemour
@leemour 원하는 것을 간단히 기술이 아닌 설명을 줄 수 있습니까? 우리가 조언 할 수있는 좋은 것일 수도 있습니다. –