(rontolisp) docs
← uiop パッケージ

uiop:read-file-string

(uiop:read-file-string file &rest keys)

ファイルの内容全体を 1 つの文字列として返します。開いて最後まで読んで閉じる、という 一連の操作を 1 回の呼び出しで書ける形です。存在しないファイルは open と 同じくシグナルを発生させます。

lite 版: 本家 UIOP は &rest のキーワードを open へそのまま渡しますが、こちらでは 受け付けて無視します。唯一影響しうる :external-format は rontolisp には存在しません。 どのバックエンドも UTF-8 で読みます。

(let ((sql (uiop:read-file-string "db/20260101.up.sql")))
  (print (length sql)))

バックエンドサポート

4 バックエンドすべてです。with-open-file とチャンク単位の read-sequence ループの上に rontolisp ソースで 1 つだけ定義されて いるので、ファイルを入力用に開けるところならどこでも動きます。バッファのサイズを file-length から決めることは意図的に避けています。チャンク単位の ループは最初の短い読み込みで止まるため、ファイル終端を読むのは高々 1 回で、これが WASI 0.3 コンポーネントで必要になる性質です。