This implementation will yield input streams that block on reads, and
reads directly from a file. If truly async input is required,
[AsyncStdinStream] should be used instead.
This implementation will yield output streams that block on writes, and
output directly to a file. If truly async output is required, [AsyncStdoutStream]
should be used instead.