Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
20
Help us understand the problem. What is going on with this article?
@Morio

【Ruby入門】ファイルの書き込みと読み込み

More than 3 years have passed since last update.

※こちらの記事は、プロスタ編集部が学習者の多いRubyの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。

参考サイト:【Ruby入門】ファイルの書き込みと読み込み

【Ruby入門】ファイルの書き込みと読み込み

今回はファイルの書き込みと読み込みの方法をご紹介します。

目次
1 ファイルを開く
2 ファイルに書き込む
3 ファイルを読み込む

ファイルを開く

Rubyでは、Fileクラスを使ってテキストファイルを読み込んだり、書き込んだりすることができます。そして、その前にまずファイルを開いてやる必要があります。ファイルを開く場合、以下のようなコードを書きます。

File.open("ファイル名","モード")

※File.openは、単にopenと書いてもかまいません。

ファイル名の部分には、開きたいファイルの名前を拡張子つきで書きます。もちろん、rbファイルと開きたいファイルが違うディレクトリにある場合は「ディレクトリ/ファイル名」のように、置いてあるディレクトリを / で区切って指定する必要があります。

また、モードというのは、以下のようなものです。

r : 読み取りモード。readのrと覚えればよいでしょう。
w : 新規作成書き込みモード。writeのwと覚えればよいでしょう。ファイルの中に書いてあるテキストを消して、すべて新しく書き換えます。
a : 追加書き込みモード。今までファイルの中にあったテキストは消さず、その続きを追加していく形でテキストを挿入します。appendのaと覚えればよいでしょう。
r+ : 両用モード
w+ : 新規作成読み書き両用モード
a+ : 追記書き込み読み込み両用モード

つまり、+がつくと両用モードとなります。モードはとくに何の指定もなければ、デフォルトのrが自動選択されます。

ファイルに書き込む

では、Fileクラスを使って、テキストファイルを作ってみましょう。ファイルの書き込みを行う場合は、以下のようにコードを書きます。

File.open("ファイル名","モード") do |変数|
変数.puts("本文")
変数.puts("本文")
end

※本文は何行作っても構いません。

これを使って、text_write_test.txtというファイルをrbファイルと同じディレクトリに作成する場合、以下のようにコードを書きます。

File.open("text_write_test.txt","w") do |text|
 text.puts("Hello!!")
 text.puts("How are you?")
end

このコードを書いたrbファイルを実行すると、同じディレクトリに「text_write_test.txt」というファイルが作成され、その中身には以下のような文章が書いてあります。

Hello!!
How are you?

ファイルを読み込む

rbファイルを実行したときにテキストファイルを読み込んで、書いてあるテキストを表示する場合、以下のようにコードを書きます。

file = File.open("ファイル名","モード")
file.each do |変数|
 puts 変数
end
file.close

指定したファイルから読み込んだ文字列を、eachメソッドを使って変数の中にいれてから表示するという仕組みになっています。

text_open_test.txtというファイルを読み込んで表示させるというプログラムを書く場合、以下のように書きます。あらかじめtext_open_test.txtというファイルを作り、中身に何か文字列を書いておきましょう。

file = File.open("text_open_test.txt","r")
file.each do |text|
 puts text
end
file.close

このプログラムをテキストファイルと同じディレクトリに保存して実行すると、text_open_test.txtに書かれている文字列が表示されます。

ここでは表示させるだけでしたが、Fileクラスはputsで表示させる意外にも、ファイルについての情報を取得したりなど、さまざまな使い道があります。

20
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Morio
弊社は初心者向けプログラミング情報サイトを運営しています。プロスタで人気の記事をより多くの人に知って、役立たせたい思いで記事の投稿をしています! サイトに興味がある方は、 http://programming-study.com

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
20
Help us understand the problem. What is going on with this article?