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

Reply via email to