IOクラス
IOクラスオブジェクト
STDOUT : 標準出力 STDIN : 標準入力 STDERR : 標準エラー
ファイルを開く
io = open('README.md') => #<File:README.me>
- ファイルオブジェクト返す
ファイル名の代わりに|に続いてコマンドを実行することも可能
io = open('| ls -la') => #<IO:0x100d42af0> puts io.read ...
- IOオブジェクトを返す
標準出力に書きこむ
STDOUT.write('Tis is Standard Output')
IOからの入力
IO.read / read IO.foreach / each / each_lines / lines : 各業をブロックに渡す readlines : ファイル全体を配列で返す readline / gets : 1行づつ読み取る bytes / each_byte getbyte / readbyte chars / each_char getc / readchar
例
IO.read("README.md", 5) #5byte 読み取る IO.foreach("README.md"){|line| puts line} open("README.md").readlines => ["first\n", "secend\n", .... io = open("README.md") io.gets => "first" io.gets => "second"
IOへの出力
write puts print printf ptc << flush : ファイルへの書き込み実施
IOオブジェクトの状態を調べる
stat closed? eof / eof? lineno : getsメソッドで呼び出された回数 sync
ファイルポインタの移動
rewind : 先頭に移動しlinenoを0にする pos : ファイルポインタの取得・設定 seek : 指定した数だけファイルポインタを2番目の引数の位置から移動する
例
io = open('sample.txt') io.seek(10) io.seek(-10, IO::SEEK_END)
- IO::SEEK_SET : ファイルの先頭から
- IO::SEEK_CUR : 現在のファイルポインタから
- IO::SEEK_END : ファイルの末尾から