May 21, 2018
What's the correct way to copy a `File` into another one in D?

If `LockingTextReader` wasn't undocumented, I'd have gone for that approach:

> import std.algorithm.mutation : copy;
> import std.stdio : File, LockingTextReader;
> 
> void main()
> {
>     auto a = File("a.txt", "r");
>     auto b = File("b.txt", "w");
> 
>     a.LockingTextReader.copy(b.lockingTextWriter);
> }


Side-note:
Although the example code suggest otherwise, I'm not talking about copying actual files on disk. In such a case I'd just use `std.file.copy` ;)
So, just imagine `a` were `stdout` of process pipe.


Kind regards,
Elias

May 21, 2018
On 21/05/2018 11:50 PM, 0xEAB wrote:
> What's the correct way to copy a `File` into another one in D?
> 
> If `LockingTextReader` wasn't undocumented, I'd have gone for that approach:
> 
>> import std.algorithm.mutation : copy;
>> import std.stdio : File, LockingTextReader;
>>
>> void main()
>> {
>>     auto a = File("a.txt", "r");
>>     auto b = File("b.txt", "w");
>>
>>     a.LockingTextReader.copy(b.lockingTextWriter);
>> }
> 
> 
> Side-note:
> Although the example code suggest otherwise, I'm not talking about copying actual files on disk. In such a case I'd just use `std.file.copy` ;)
> So, just imagine `a` were `stdout` of process pipe.
> 
> 
> Kind regards,
> Elias

I would probably start by reading it byChunk and writing it out as a rawWrite or something along those lines. That way its using a nice buffer (to limit memory usage).