You just open the file for reading using with-open-file
and then use the function read
as often as you would like or as often as there are arrays. Each read
returns an array. Using loop
you can collect them into a list.
Basically something like this:
(with-open-file (s filename)
(let ((*read-eval* nil))
(loop with eof = '#:eof
for object = (read s nil eof)
until (eq object eof)
collect object)))
Note also that it does not matter whether each array is on its own line. It would still work if they are on one line. A newline between expressions is just whitespace for the Lisp reader.