Hi Isaac, On Wed, 27 Mar 2019 at 17:18, Isaac Gouy via Pharo-users <[email protected]> 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
