Actions
Bug #18957
closedStringIO#printf doesn't ignore initial String value
Description
I've noticed that StringIO#printf
diverges from IO#printf
in the following way:
IO:
File.write("printf.txt", "1234567890")
f = File.open("printf.txt", "w+")
f.printf("%s", "abc")
f.rewind
f.gets
# => "abc"
StringIO:
io = StringIO.new("1234567890")
io.printf("%s", "abc")
io.rewind
io.gets
=> "abc4567890"
So File
opened in a w
mode "truncates" existing file content but StirngIO
(by default) doesn't.
I would expect StringIO
behaves in the same way.
Updated by mame (Yusuke Endoh) about 1 year ago
StringIO
behaves like File.open
with an r+
mode.
File.write("printf.txt", "1234567890")
f = File.open("printf.txt", "r+")
f.printf("%s", "abc")
f.rewind
p f.gets #=> "abc4567890"
Is there any reason for you to expect it to be the same as w+
mode instead of r+
?
Updated by andrykonchin (Andrew Konchin) about 1 year ago
Good point. I overlooked the difference between r+
and w+
. Thank you for clarification.
Updated by jeremyevans0 (Jeremy Evans) about 1 year ago
- Status changed from Open to Rejected
Actions
Like0
Like0Like0Like0