2011-09-16 14 views
5

私はいくつかのバイナリデータをストリームに出力する関数を持っています。しかし、ストリームは抽象ストリームであることを意味します。これは、ストリームがファイルストリームまたはその他のストリームである可能性があることを意味します。しかし、ストリームは、バイト書き込み機能をサポートするバイナリストリームでなければなりません。私は検索しましたが、答えは見つかりませんでした。Common Lispでバイナリストリーム(ファイルではない)を作成する方法は?

私がしたいことは、いくつかのデータをgifに変換する機能があることです。しかし、私はそのデータをファイルに出力したくないので、メモリ内の何かに出力したいのです。

ありがとうございました。

答えて

3

flexi-streamsライブラリは、とりわけ、メモリ内のバイナリストリームを提供します。

+0

"文字列ストリームに似たインメモリバイナリストリームも提供しています。"私は詳細については、ドキュメントを読んでいます。ありがとう。 –

+0

フレキシストリームのシーケンスを出力すると、私の問題は解決します。 –

1

"File in memory" - 単なるバイト配列です。ですから、ストリームからデータを読み込んで、それを1次元配列(ベクトル)に書き出すだけです。 CLの配列の詳細については、thisを参照してください。

+0

いいえ、それは私が欲しいものではありません。私が欲しいのは配列(または何か他のもの)にいくつかのデータを書き込むことです。しかし、 'write'関数はストリームオブジェクトを必要とします。とにかくありがとう。 –

+0

@kevin lynx:この機能を作るのに何が問題なのですか?ストリームからリストへのすべてのバイトを読み込み、このリストを ':initial-contents'として' make-array'に供給します。 – ffriend

関連する問題