web-dev-qa-db-ja.com

ルビーの一時ファイルで.rewindメソッドは何をしますか?

私は これらのドキュメント と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
14
Jon E Kilborn

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でなければなりません。 長さがゼロの場合、空の文字列( "")を返します。

13
iamcaleberic