I/O extensions for common tasks
Steven Schveighoffer
schveiguy at gmail.com
Tue Dec 11 14:15:13 UTC 2018
On 12/11/18 12:24 AM, Paul Backus wrote:
> On Monday, 10 December 2018 at 14:44:56 UTC, Steven Schveighoffer wrote:
>> On 12/9/18 9:37 PM, Seb wrote:
>>> On Monday, 10 December 2018 at 01:51:56 UTC, Andrew Pennebaker wrote:
>>>> The stdlib has all the low-level components we need to do lots of
>>>> different workflows. However, there are a few gaps in the API in
>>>> terms of high level, common tasks. For example, the API can read an
>>>> entire Unicode text file to a string for a given filename, but not
>>>> for a given File object!
>>>>
>>>> [...]
>>>
>>> What's wrong with readText:
>>>
>>> https://dlang.org/phobos/std_file.html#readText
>>
>> Problem statement is that given a File object, how do you read all the
>> data out? :) std.file doesn't help there.
>
> As far as I know, the best answer is
> `file.byLineCopy(Yes.keepTerminator).joiner` if you want characters, and
> `file.byChunk(...).joiner` if you want ubytes.
Well, I would say the original request wants it in a string, so we are
focusing on characters.
However, this does NOT work:
file.byLine(Yes.keepTerminator).joiner.array;
Because it will make an array of dchars.
What you really want is this:
cast(string)file.byChunk(4096).joiner.array;
-Steve
More information about the Digitalmars-d
mailing list