私は これらのドキュメント とGoogleを調べましたが、.rewind
の目的、および.close
との違いを、作業のコンテキストで見つけることができないようですTempfile
。
また、なぜ.read
は巻き戻す前に空の文字列を返すのですか?
次に例を示します。
file = Tempfile.new('foo')
file.path # => A unique filename in the OS's temp directory,
# e.g.: "/tmp/foo.24722.0"
# This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read # => "hello world"
file.close
file.unlink # deletes the temp file
Rewind- Ruby docs で詳細を読む
IO#Close- Ruby docs で詳細を読む
Read- Ruby docs の詳細を読む
概要
rewind
iosを入力の先頭に配置し、linenoをゼロにリセットします。巻き戻しは行番号をゼロにリセットします
f = File.new("testfile")
f.readline #=> "This is line one\n"
f.rewind #=> 0
f.lineno #=> 0
f.readline #=> "This is line one\n"
IO#close
iosを閉じ、オペレーティングシステムへの保留中の書き込みをすべてフラッシュします。read ([length [、outbuf]])
I/Oストリームからlengthバイトを読み取ります。長さは負でない整数またはnilでなければなりません。 長さがゼロの場合、空の文字列( "")を返します。