LISP: Wie lese ich Inhalte aus einer Datei und schreibe sie in eine andere Datei?

Ich möchte eine Funktion schreiben, die die Namen der beiden Dateien als Argumente hat und den Inhalt von der ersten in die zweite Datei kopiert.

Bisher habe ich eine Funktion geschrieben, die aus einer Datei liest:

(defun readFile (name)
 (let ((in (open name)))
  (format t "~a~%" (read-line in))
   (close in)))

Und eine Funktion, die einen String in eine Datei schreibt:

(defun writeFile (name content)
(with-open-file (stream name
    :direction :output
    :if-exists :overwrite
    :if-does-not-exist :create)
(format stream content)))

Den Anweisungen von Savantes folgend habe ich die Funktion erneut geschrieben und so sieht es aus:

(defun read-write-to-file (input-file output-file)
(WITH-OPEN-FILE (output-stream output-file
         :direction :output
         :if-exists :new-version
         :if-does-not-exist :create)
  (WITH-OPEN-FILE (input-stream input-file
                 :direction :input)
        (FORMAT output-stream "~a" (READ input-stream nil 'eof))
)))

Das einzige Problem ist, dass nicht die gesamte Datei gelesen wird.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage