Skip to content
This repository was archived by the owner on Jun 6, 2020. It is now read-only.
raduwen edited this page Oct 7, 2012 · 2 revisions

====

ファイル操作

セーブデータとかログを取ったりとか色々な場面でファイルの操作が必要になると思います。 今回はファイル操作の基本的なところをやりたいと思います。

ファイルを開く/閉じる

ファイルを開くのはとっても簡単です。

file = open("filepath")

これだけです。逆に閉じるには、

file = open("filepath")
file.close

みたいにcloseしてあげます。ファイルは開いて必要がなくなったら閉じてあげてください。

開いたファイルの中身を取り出すにはreadとかgetsとか色々なメソッドが使えます。

file = open("test.txt")
p file.read  # 全部読む
file.close

file = open("test.txt")
p file.gets # 1行読む
file.close

ファイルに書き込む

ファイルを開くときに読み込みモード"r"とか書き込みモード"w"とかがあります。 デフォルトでは読み込みモードです。print/puts/writeとかで書き込みます。

file = open("test.txt", "w")
file.puts "Hello"
file.puts "World"
file.close

ここで気を付けないといけないのは"w"は新規ファイル(追記ではない)として書き込みます。 なので、上書きされてしまいます。

追記したい場合は"a"を使います。

file = open("test.txt", "a")
100.times do
  file.puts "うんこ"
end
file.close

それぞれモードに"+"を付けてると読み書き両方できます。

file = open("test.txt", "r+")
file = open("test.txt", "w+")
file = open("test.txt", "a+")

バイナリモード tab

普通のファイル操作ではテキストファイル(.txtとか.rbとか.xmlとか.htmlとか)の読み書きを前提としています。

画像とか音声ファイルとかメモ帳で開けないようなファイルはバイナリファイルです。

バイナリファイルを開きたいときは"b"を付けます。

file = open("test.txt", "rb")
file = open("test.txt", "wb")
file = open("test.txt", "ab")
file = open("test.txt", "r+b")
file = open("test.txt", "w+b")
file = open("test.txt", "a+b")

ファイル操作(番外)

ファイルの種類といえばcsvとかxmlとかjsonとかyamlとか色々あります。 それぞれのフォーマットには、それぞれのライブラリが大体用意されています(あまり有名じゃないものはなかったりします)。

# 色々最初から入ってる(標準添付ライブラリ)
require 'csv'
require 'rexml/document' # XMLパーサ
require 'json'
require 'yaml'

XMLやHTMLだとnokogiriとかhpricotとか他のライブラリ(gem)もあります。 色々してみたい方は調べてみましょう!


Home | Rubyのあれこれ - ファイル操作 - EXEの作り方

Clone this wiki locally