首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在将drakma http-request数组写入文件

正在将drakma http-request数组写入文件
EN

Stack Overflow用户
提问于 2011-07-31 03:25:53
回答 1查看 333关注 0票数 3

我想做的是:获取(drakma:http-request "someURL.jpg")的输出并将其写入一个文件。输出由一个字节数组组成。

我的想法是:

代码语言:javascript
复制
(with-open-file (my-stream "thing.jpg" 
                           :direction :output
                           :element-type 'binary 
                           :if-does-not-exist :create
                           :if-exists :supersede)
  (let ((content (drakma:http-request "someURL.jpg")))
    (loop for i across content do
      (write-byte i my-stream))))

我得到的错误是:

代码语言:javascript
复制
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING
                                                {1002978FB1}>:
  could not find any output routine for :FULL buffered BINARY

我使用SBCL 1.0.49。如果您想要任何其他信息或发现我的问题不清楚,那么请问:)。

编辑:问题出在:element-type,它应该是'unsigned-byte‘。你可以在open下的Common Lisp Hyper Spec找到关于:element-type不同可能性的信息。除此之外,一切都是正确的。

PS。我不能回答,因为我的名声太低了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-02 18:43:52

正如Xach所说,你最好使用'(unsigned-byte 8) (或者做一个类型定义,比如(deftype binary () '(unsigned-byte 8)))。

此外,您还可以使用对write-sequence的调用来替换数组上的循环和逐字节写入

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6885504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档