2 flat logo on transparent 256
2018-06-10

Rubyの練習問題:ファイル操作編|初心者・独学者向け入門コンテンツ

File103121

プログラミング言語にかかわらず、ログ出力や顧客リスト出力など、ファイルへの読み書き読み込みなどは発生します。

今回はRubyのファイル操作についての練習問題を記載しました。

各ファイル操作のモードについては以下記事を御覧ください。

Rubyでファイルの読み込み、書き込みを行う方法

関連問題

Rubyの練習問題:配列編|初心者・独学者向け入門コンテンツ

Rubyの練習問題:文字列編|初心者・独学者向け入門コンテンツ

Rubyの練習問題:ハッシュ編|初心者・独学者向け入門コンテンツ

Rubyの練習問題:繰り返し処理編|初心者・独学者向け入門コンテンツ

Rubyの練習問題:条件分岐編|初心者・独学者向け入門コンテンツ

Rubyのファイル操作の練習問題

1: rubyのファイル操作について1

以下Rubyのファイル操作プログラムを実行しましたが、エラー が発生しました。

エラーが発生する、ファイル操作モードを選択肢から選択してください。

File.open("test.txt") do |f|
  f.puts("テスト")
end

#発生エラー
`write': not opened for writing (IOError)

選択肢

選択肢1:“a”

選択肢2:“r”

選択肢3:“w+”

選択肢4:“w”

rubyのファイル操作について1の回答

2: rubyのファイル操作について2

以下Rubyのファイル操作プログラムを実行しましたが、エラー が発生しました。

エラーの原因を回答してください。

test.rb

File.open("test2.txt","w") do |f|
  f.puts("2問目のテスト")
end

#発生エラー
# No such file or directory @ rb_sysopen

選択肢

選択肢1:“wモードで展開したが、ファイル名が重複した為”

選択肢2:“wモードで展開したが、ファイル内の内容が重複した為”

選択肢3:“test.rbのディレクトリに"test2.txt"がない為”

rubyのファイル操作について2の回答

3: rubyのファイル操作について3

以下テキストファイルの2行目に値を追加したい場合の Rubyのファイル操作プログラムを記載してください。 ※wモードは利用しない

やりたい内容

test3.text

テスト
ここから2行目です。

rubyのファイル操作について3の回答

4: rubyのファイル操作について4

以下を実行したときの結果を選択肢から1つ選んでください。

p File.superclass
選択肢1
IO

選択肢2
Dir

選択肢3
Class

選択肢4
Object

選択肢5
Module

rubyのファイル操作について4の回答

5: rubyのファイル操作について5

Rubyのファイル操作モード"w"の動作を選択肢から1つ選んでください。

選択肢1
ファイルが存在する場合は末尾に追記され、ファイルが存在しない場合は新規作成される

選択肢2
ファイルが存在する場合は上書きされ、ファイルが存在しない場合はnilを返す

選択肢3
ファイルが存在する場合は末尾に追記され、ファイルが存在しない場合はnilを返す

選択肢4
ファイルが存在する場合は上書きされ、ファイルが存在しない場合は新規作成される

rubyのファイル操作について5の回答

1-1:rubyのファイル操作について1 の回答

設問

以下Rubyのファイル操作プログラムを実行しましたが、エラー が発生しました。

エラーが発生する、ファイル操作モードを選択肢から選択してください。

File.open("test.txt") do |f|
  f.puts("テスト")
end

#発生エラー
`write': not opened for writing (IOError)

選択肢

選択肢1:“a”

選択肢2:“r”

選択肢3:“w+”

選択肢4:“w”

回答

選択肢2:“r”

Rubyのファイル操作モードは以下の通り、第2引数でファイル操作モードを指定します。

File.open("test2.txt", "w+") do |f|
 f.puts("ファイルを読み書き")
 f.puts f.size # ファイルサイズ
 f.puts f.atime # 最終アクセス時刻
 f.puts f.mtime # 最終更新時刻
end

指定しない場合はデフォルトでファイルを読み込む(書き込み不可)モードの"r"が呼び出されます。

"r"モードは書き込みができないため、エラーが発生します。

1-2:rubyのファイル操作について2の回答

設問

以下Rubyのファイル操作プログラムを実行しましたが、エラー が発生しました。

エラーの原因を回答してください。

test.rb

File.open("test2.txt","w") do |f|
  f.puts("2問目のテスト")
end

#発生エラー
# No such file or directory @ rb_sysopen

選択肢

選択肢1:“wモードで展開したが、ファイル名が重複した為”

選択肢2:“wモードで展開したが、ファイル内の内容が重複した為”

選択肢3:“test.rbのディレクトリに"test2.txt"がない為”

回答

選択肢3:“test.rbのディレクトリに"test2.txt"がない為”

起動しようとするプログラムと同じディレクトリに対象操作ファイルが存在しない場合はNo such file or directory @ rb_sysopenというエラーが発生します。

なお、wモードはファイルがなければ新規作成し、既に存在する場合はファイルの内容を上書きします。

1-3:rubyのファイル操作について3の回答

設問

以下テキストファイルの2行目に値を追加したい場合の Rubyのファイル操作プログラムを記載してください。 ※wモードは利用しない

やりたい内容

test3.text

テスト
ここから2行目です。

回答

a+モードを利用します。

a+モード

File.open("test2.txt", "a+") do |f|
 f.puts("ファイルを追加")
end

a+モードは末尾に指定テキストを挿入します。 なおファイルが存在しない場合は新規作成をします。

1-4:rubyのファイル操作について4の回答

設問

以下を実行したときの結果を選択肢から1つ選んでください。

p File.superclass
選択肢1
IO

選択肢2
Dir

選択肢3
Class

選択肢4
Object

選択肢5
Module

回答 選択肢1

superclassメソッドは、レシーバに指定したクラスオブジェクトのスーパークラスを返します。 FileクラスのスーパークラスはIOクラスになるので、選択肢1が回答となります。

1-5:rubyのファイル操作について5の回答

設問

Rubyのファイル操作モード"w"の動作を選択肢から1つ選んでください。

選択肢1
ファイルが存在する場合は末尾に追記され、ファイルが存在しない場合は新規作成される

選択肢2
ファイルが存在する場合は上書きされ、ファイルが存在しない場合はnilを返す

選択肢3
ファイルが存在する場合は末尾に追記され、ファイルが存在しない場合はnilを返す

選択肢4
ファイルが存在する場合は上書きされ、ファイルが存在しない場合は新規作成される

回答 選択肢4

wモードはファイルが存在する場合は上書きされ、ファイルが存在しない場合は新規作成されます。

ファイルモードの各動作は以下記事をご覧下さい

Rubyでファイルの読み込み、書き込みを行う方法

その他関連記事

Rubyの引数で使えるテクニック|キーワード引数

初心者・独学者向け|Rubyのハッシュ入門とよく使うメソッド

初心者・独学者向け|Rubyの配列処理の入門とよく使うメソッド

初心者・独学者向け|Rubyのinitializeメソッドとは

初心者・独学者向け|RubyのStringクラスとよく使うメソッド

Rubyの繰り返し処理の解説|初心者・独学者向け

前の記事
次の記事
人気記事
カテゴリーから記事を探す