ストリームメソッド

はじめに
入力ストリームと出力ストリームは,ストレージメカニズムからバイトを読み書きするために要求されるストリーム操作を表すストリームメソッドを使って開かれる.ストリームメソッドを使うことで,ファイル,子プロセス,Webサーバ,バイトのインメモリリスト等のストレージメカニズムやデータソースから読み書きすることが可能になる.ストリームメソッドは圧縮や暗号化といったような変換も実行できる.たとえば,ユーザはストリームメソッドを使うことで圧縮されたファイルを開き,解凍されたコンテンツを読むことができる.ストリームへの操作では,物理メモリに適合しないような非常に大きいファイルへの操作も行える.
Wolframシステムは,ファイル,Webサーバ,文字列,外部コマンドからの読み書きのような一般的なニーズに応えられるストリームメソッドを提供している.また,に新しいストリームメソッドを加えることもできる.
ストリームメソッドを使う
読み書きのためにストリームを開いたら,Methodオプションを使って自分でストリームメソッドを指定することもできれば,Wolframシステムに,ストリーム名から自動的にストリームメソッドを選ばせることもできる.
次は,ストリーム名からストリームメソッドを選んで,Webサーバからストリームを開く:
次はMethodオプションでストリームメソッドを選んで,Webサーバからストリームを開く:
次では,ストリーム名からストリームメソッドを選んで,Webサーバから直接Wolframシステムパッケージをロードする:
以下では,明示的に開かれた入力ストリームを使って,Webサーバから直接Wolframシステムパッケージをロードする:
入力ストリームメソッド
Wolframシステムには新しい入力ストリームメソッドを加えることができる.新しいストレージ媒体から読みたい場合や,ファイルの解凍等,読まれると同時にデータを変換したい場合に便利である.
ファイルからではなく,メソッドオプション"Bytes"として渡されるバイトのリストから入力を取るストリームメソッドを定義する:
次で新しいメソッドをテストする:
次は,読み込むと同時にストリームに回転暗号化を実行するストリームメソッドを定義する.暗号的に強い暗号化も同じように実行できる:
このメソッドをテストするために,まず暗号化されたテストファイルを書き,この新しいメソッドを使ってそれを読み込む:
ストリームメソッドがファイルの内容を変換するため,内容はReadが返すものとは異なっている:
出力ストリームメソッド
Wolframシステムには新しい出力ストリームメソッドを加えることもできる.新しい記憶媒体に書き込みたい場合や,ファイルの解凍等,書き込まれると同時にデータを変換した場合に便利である.
書き込まれたバイト数を出力する最小のストリームメソッドを定義する:
以下で新しいメソッドをテストする: