Thank you for the info! I will use `with-open`.
(I do not know enough about this problem space to have an opinion about the stream interop functions. I will provide my naive thought process after reading the docstrings here in case it is helpful: "Hmmm, it says these are "terminal operation"s, so I'm not sure I'm even supposed to run any other operations on them, and technically `.close` is an operation, so maybe I am not allowed to run `.close`. Also, if these are terminal operations they will probably call `.close` themselves because why wouldn't they?")
(All that said I have now, in Clojure core fashion, gone to the dictionary definition of "terminal" and I see it does not always mean the actual end, it can just be related to the end, so presumably near the end, so I would not say the word is incorrect. Maybe drawing from the wording on the interop page with something like"this function consumes the stream" would be somewhat clearer, I don't really know.)
(I am overall just glad these functions exist!)