Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

コース一覧に戻る ホームへ戻る

Fileクラスレッスンのドリル

コンテンツ概要

このドリルを学習して、Ruby入門コースのレッスン「Fileクラス」の内容を理解しているか確かめましょう。

このドリルは10問の問題があります。


はじめる

問題

以下のディレクトリ構造の時、READMEファイルまでのパスを表す文字列オブジェクトを返すものを選択肢の中から選択してください。

ディレクトリ構成

/foo
└─── bar
     └─── baz
          └─── README

カレントディレクトリ

/foo

出力結果

"/foo/bar/baz/README"

選択肢を選ぶ

require 'find'
Find.find(Dir.pwd) do |f|
  p f if File.dirname(f) == "README"
end

require 'pathname'
Pathname.pwd.find do |f|
  p f if File.basename(f) == "README"
end

require 'find'
Find.find(Dir.pwd) do |f|
  p f if File.basename(f) == "README"
end

require 'pathname'
Pathname.pwd.find do |f|
  p f if File.dirname(f) == "README"
end


次の問題へ進む

問題

ファイルの属性を検査するためのモジュールとして正しいものはどれでしょうか。以下の選択肢の中から選択してください。

選択肢を選ぶ

FileTest

Dir

IO

File


次の問題へ進む

問題

以下のプログラムを実行した結果、標準出力に出力されるものとして正しいものを選択肢の中から選択してください。

p File.superclass

選択肢を選ぶ

IO

Object

Class

Dir


次の問題へ進む

問題

以下の選択肢の中からプログラムの(A)に入れて、正しいと思われるものを選択してください。

require (A)
open("http://www.example.com/foo.html") do |f1|
  File.open("foo.html", "w") do |f2|
    f2.puts(f1.read)
  end
end

選択肢を選ぶ

'pathname'

'find'

'open-uri'

'fileutils'


次の問題へ進む

問題

以下のプログラムを実行した結果、標準出力に出力されるものとして正しいものを選択肢の中から選択してください。

ディレクトリ構成

/foo
└─── bar
    └─── baz
        ├─── README
        └─── ChangeLog

カレントディレクトリ

baz

プログラム

p Dir.pwd

選択肢を選ぶ

#

#

"/foo/bar/baz"

"/foo/bar/baz/README"


次の問題へ進む

問題

以下のプログラムを実行した結果、エラーが発生しました。Fileクラスのopenメソッドは、どのようなモードを指定して実行されたのでしょうか。選択肢の中から正しいと思われるものを選択してください。

プログラム

File.open("foo.txt") do |f|
  f.puts("foo")
end

エラー出力

IOError: not opened for writting

選択肢を選ぶ

"a"

"r"

"w+"

"w"


次の問題へ進む

問題

以下のコードを実行した結果、標準出力に出力されるものとして正しいものを選択肢の中から選択してください。

ディレクトリ構成

/foo
└─── bar
     └─── baz

カレントディレクトリ

bar

プログラム

require 'pathname'
path = Pathname.pwd
p path.children

選択肢を選ぶ

#

"/foo/bar/baz"

[#]

#


次の問題へ進む

問題

以下のプログラムを実行した結果、foo.txtファイルの既存の内容は削除され、bar.txtファイルの内容が書き込まれます。その処理をおこなうものとして正しいものを選択肢の中から選択してください。

ディレクトリ構成

/foo
├─── foo.txt
└─── bar.txt

カレントディレクトリ

/foo

foo.txtファイルの内容

foo

bar.txtファイルの内容

bar

プログラム

File.open("bar.txt", "r") do |f1|
  File.open("foo.txt", (A)) do |f2|
    f2.puts(f1.read)
  end
end

選択肢を選ぶ

"r"

"a"

"w"

"a+"


次の問題へ進む

問題

以下のプログラムを実行した結果、foo.txtファイルの内容が、bar.txtファイルの既存の内容に追加されます。選択肢の中から正しいと思われる選択肢を選択してください。

ディレクトリ構成

/foo
├─── foo.txt
└─── bar.txt

カレントディレクトリ

/foo

foo.txtファイルの内容

foo

bar.txtファイルの内容

bar

プログラム

File.open("foo.txt", "r") do |f1|
  File.open("bar.txt", (A)) do |f2|
    f2.puts(f1.read)
  end
end

選択肢を選ぶ

"w"

"r"

"a"

"w+"


次の問題へ進む

問題

以下のプログラムの(A)に入れて、正しいと思われるものを選択肢の中から選択してください。この(A)に選択肢のコードを入れた結果、そのプログラムが標準出力に出力される値は同じように見えないといけません。

プログラム

str = gets
(A)

getsメソッドの呼び出し時に入力された文字列

foo\n

選択肢を選ぶ

puts(str)
print

p str
print 

p "foo\n"
print

print
p $_


コース一覧に戻る ホームへ戻る