2011-09-16 63 views
5

我有一个函数可以将一些二进制数据输出到一个流中。但是流是抽象的,这意味着流可以是文件流或其他流。但是流必须是支持写字节功能的二进制流。我搜查了但没有找到答案。如何在Common Lisp中创建二进制流(不是文件)?

我想要做的是,我有一个函数可以将一些数据转换成gif。但我不想将数据输出到文件,我想将它输出到内存中。

谢谢。

回答

3

flexi-streams库提供了其中包括内存中的二进制流。

+0

“它还提供了类似于串流的内存中二进制流。”似乎是我想要的。我会阅读文档以获取更多信息。谢谢。 –

+0

谢谢,在flexi-streams中输出到序列解决了我的问题。 –

1

“文件在内存中” - 只是一个字节数组。所以你所需要的只是从流中读取数据并将其写入一维数组(矢量)。有关CL中数组的更多信息,请参阅this

+0

不,这不是我想要的。我想要的是将一些数据写入数组(或其他)。但'写'功能需要一个流对象。不管怎么说,还是要谢谢你。 –

+0

@kevin lynx:那么创建这个函数有什么问题?从流中读取所有字节到列表中,并将该列表作为':initial-contents'提供给'make-array'。 – ffriend