ファイルを開く


Tags: 入出力, R6RS

ファイルを開く

読み込み/書き込み用にファイルを開くには open-file-input-port / open-output-file-port を使う。戻り値はポートである。ポートにはバイナリポートとテキストポートがある。

(import (rnrs))

(open-file-input-port "/path/to/file" (file-options) (buffer-mode block))
(open-file-output-port "/path/to/file" (file-options no-fail))

ファイル名のあとにはオプションとバッファモードを指定する。

オプションが有効なのは open-file-output-port に対してのみであり、指定可能なのは次のものである。

no-create

ファイルが存在しなかった場合に例外を発生させる。ファイルが存在した場合にはファイルサイズを 0 に切りつめる。

no-fail

ファイルが存在した場合にも例外を発生させない。ファイルサイズを 0 に切りつめる。

no-truncate

上記の場合でもファイルを切りつめない。

バッファモードとして指定可能なものは次の通りである。

none

バッファリングなし。

line

行単位バッファリング。

block

任意のバッファリング。

何も指定しない場合にはファイルはバイナリモードで開かれる。テキストモードで開くためにはコード変換器を指定する。

(import (rnrs))

(open-file-input-port "/path/to/utf-8.txt"
                      (file-options)
                      (buffer-mode block)
                      (make-transcoder (utf-8-codec)))