This repository was archived by the owner on Jun 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
File
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+")
普通のファイル操作ではテキストファイル(.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)もあります。 色々してみたい方は調べてみましょう!