Сохранение в файл в Лиспе - PullRequest
1 голос
/ 26 марта 2011

Я просто пытаюсь записать файл с помощью следующей функции:

(defun test-save ()
  (with-open-file (stream "test.txt" :if-does-not-exist :create)
                  (format stream "success!")))

Однако при вводе (test-save) создаются следующие данные: errors galore

Что такоеЯ не так делаю?

Я использую Cusp для Eclipse с SBCL на Mac, если это имеет значение.

ОБНОВЛЕНИЕ: теперь эта новая ошибка: new error

И ответ:

COMMON-LISP-USER>
(with-open-file (stream "test.txt" :direction :output
                                   :if-does-not-exist :create)
      (format stream "success!"))

error opening #P"/Applications/eclipse/Eclipse.app/Contents/MacOS/test.txt":
  File exists
   [Condition of type SB-INT:SIMPLE-FILE-ERROR]
    0: [ABORT] Return to SLIME's top level.
    1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {12539CB1}>)
]> 0

ОБНОВЛЕНИЕ 2:

Решено!Я просто должен был использовать :if-exists :supersede

1 Ответ

6 голосов
/ 26 марта 2011

Попробуйте добавить :direction :output для создания потока выходного файла:

(with-open-file (stream "test.txt" :direction :output
                                   :if-does-not-exist :create)
      (format stream "success!"))
...