A stream, whether a character stream or a binary stream,
can be an input
stream
(source of data),
an output
stream
(sink for data),
both,
or (e.g., when ":direction :probe
" is given to open) neither.
Figure 21–2 shows operators relating to input streams.
clear-input | read-byte | read-from-string |
listen | read-char | read-line |
peek-char | read-char-no-hang | read-preserving-whitespace |
read | read-delimited-list | unread-char |
Figure 21–3 shows operators relating to output streams.
clear-output | prin1 | write |
finish-output | prin1-to-string | write-byte |
force-output | princ | write-char |
format | princ-to-string | write-line |
fresh-line | write-string | |
pprint | terpri | write-to-string |
A stream that is both an input stream and an output stream is called a bidirectional stream . See the functions input-stream-p and output-stream-p.
Any of the operators listed in Figure~21–2 or Figure~21–3 can be used with bidirectional streams. In addition, Figure 21–4 shows a list of operators that relate specificaly to bidirectional streams.
y-or-n-p | yes-or-no-p |