0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyのFileの解説

Last updated at Posted at 2022-01-25

image.png
rubyのsilverを勉強していく中で、この問題が正解できなかったので、それを解説する意味でもこの記事を書かせていただきます。

この問題を正解するうえで、抑えておくべきポイントは、

  1. w :書き込みモード。
  2. w+ :読み書きモード。既にファイルが存在する場合は、空になります。新規作成もされます。
  3. r :読み込みモード。
  4. r+ :読み書きモード。ファイルの読み込みと書き込みの位置は文の先頭から。
  5. a :追記モード。既存のファイルの文末に入力内容を追記する。
  6. a+ :読み書きモード。ファイルの読み込み位置は先頭に、書き込み位置は常に末尾になる。f.rewindでファイルポインタをファイルの先頭に移動したとしても、ファイルの末尾に書き込まれる。

1個ずつ解説していきますね

##w
wはwriteのwと覚えれば役割がはっきりしますね。
既存のファイルに、書き込みをしていく機能なんですね。

##r
readのrと覚えればわかりやすいですね!
既存のファイルを読み込む機能ですね。どんな記述がされているかなどを読みこむためのものですね。

##a
appendのaと覚えれば分かりやすいですね!
appendメソッドと同じように、書き込み位置は末尾になるんですね。

##+がつくとどうなるか?
+がつくとどうなるか?どっちもできるようになります。例えばどういうことかというと、
wは書き込みモードですが、+がつくと読み込み機能も付加されるんです。他も同様に、ない機能が追加されるといった感じです!

##IOクラスについて
IOクラスとは、外部データとやり取りするための機能として、入力(Input)と出力(Output)を提供するためのものなんです。
IOはinputとoutputの頭文字をとったものなんですね。

seekメソッドに関しては、こちらの公式ドキュメントをお読みください!

seek_setは今回の問題でいえば、値は先頭からということですね。

##今回の問題の正解
今回の問題でいえば、wとw+は不正解です。なぜなら、今回の問題のIO:seek_setはファイルポインタを先頭に移動するため、上書きされてしまうんですね。
表示結果がrecode2だけが表示されるんですね。
そのため、今回でいうと正解は、aとa+です

以上です!
間違い等ございましたら、ご教示いただけると幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?