Why is there no std.stream anymore?
flamencofantasy
flamencofantasy at gmail.com
Mon Dec 11 23:29:16 UTC 2017
On Monday, 11 December 2017 at 20:51:41 UTC, Jordi Gutiérrez
Hermoso wrote:
> I'd like to read from a file, one byte at a time, without
> loading the whole file in memory.
>
> I was hoping I could do something like
>
> auto f = File("somefile");
> foreach(c; f.byChar) {
> process(c);
> }
>
> but there appears to be no such way to do it anymore. Instead,
> the stdlib seems to provide several functions to do chunked
> reads from the file where I have to manually manage the buffer.
> I see that D1 had a stream, but it's no longer here and I
> understand ranges are supposed to be used instead.
>
> What's the explanation here? Why is there no more stream and
> what am I supposed to use instead? Do I really need to be
> manually managing the read buffer myself?
This should work;
scope f = new MmFile("somefile");
foreach(c; cast(string)f[]) {
process(c);
}
More information about the Digitalmars-d-learn
mailing list