web-dev-qa-db-ja.com

Rubyでファイルを開くモード

私はRubyの新しいプログラマーです。誰かがRubyでr +、w +、a +モードでファイルを開く例を取ることができますか?それらとr、w、aの違いは何ですか?

説明し、例を提供してください。

50
amir amir

ファイルのオープンモードは、Ruby-IEEE Std 1003.1の一部です( Single UNIX Specification )に固有ではありません。詳細については、こちらを参照してください。

http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html

r or rb
    Open file for reading.

w or wb
    Truncate to zero length or create file for writing.

a or ab
    Append; open or create file for writing at end-of-file.

r+ or rb+ or r+b
    Open file for update (reading and writing).

w+ or wb+ or w+b
    Truncate to zero length or create file for update.

a+ or ab+ or a+b
    Append; open or create file for update, writing at end-of-file.

文字「b」を含むモードは、バイナリファイルを表します。 「b」が存在しない場合は、「プレーンテキスト」ファイルです。

「open」と「open for update」の違いは次のとおりです。

更新モード(モード引数の2番目または3番目の文字として「+」)でファイルを開くと、関連するストリームで入力と出力の両方が実行されます。ただし、アプリケーションは、fflush()またはファイルポジショニング関数(fseek()、fsetpos()、またはrewind())の呼び出しを介することなく、出力の直後に入力が続かないようにし、入力の直後に入力が続かないようにします。入力操作でファイルの終わりが検出されない限り、ファイルポジショニング関数への介入呼び出しなしの出力。

100
miku