Hi Isaac, On Wed, 27 Mar 2019 at 17:18, Isaac Gouy via Pharo-users <pharo-users@lists.pharo.org> wrote:
From â "Pharo 7 file streams guideline"
https://github.com/pavel-krivanek/pharoMaterials/blob/master/Filestreams.MD
I have some ideas like â
in := ZnFastLineReader on: (ZnCharacterReadStream on: Stdio stdin). out := ZnBufferedWriteStream on: (ZnCharacterWriteStream on: Stdio stdout).
What would be faster / better / more Pharo ways to do buffered reads and buffered writes to stdio ?
This is heading in the right direction. The buffered wrappers are normally placed on the underlying binary stream, and then wrapped with the encoder / decoder. Follow through FileReference>>writeStream and FileReference>>readStream to see how it is done for files. in := ZnFastLineReader on: (ZnCharacterReadStream on: (ZnBufferedReadStream on: Stdio stdin)). out := ZnCharacterWriteStream on: (ZnBufferedWriteStream on: Stdio stdout). Note that if you're doing terminal IO you'll need to handle stdin differently. If you're writing to a terminal on Linux / MacOS you'll need to use LFs instead of Pharo's standard CRs, so it may be worthwhile adding ZnNewLineWriterStream on: out. HTH, Alistair