rawFileStream

一度に巨大なファイルを読み込むことに特化した,バッファ持ち入力ストリームです。

rawFileStream
(
T
)
(
string filename
,
size_t bufferSize = 1024 * 1024
)
if (
is(Unqual!T == T)
)

Examples

1 immutable fname = "testData.dat";
2 std.file.write(fname, cast(ubyte[])[0, 1, 2, 3, 4, 5]); // 6byte
3 scope(exit)
4     std.file.remove(fname);
5 
6 auto sig1 = rawFileStream!int(fname);
7 static assert(isInputStream!(typeof(sig1)));
8 static assert(isInplaceComputableStream!(typeof(sig1)));
9 static assert(isBufferedInputStream!(typeof(sig1)));
10 
11 assert(sig1.availables.length == 1);
12 sig1.consume(1);
13 assert(sig1.empty && sig1.fetch());
1 immutable fname = "testData.dat";
2 std.file.write(fname, [0, 1, 2, 3, 4, 5]); // 24byte
3 scope(exit)
4     std.file.remove(fname);
5 
6 auto sig1 = rawFileStream!int(fname);
7 assert(sig1.availables == [0, 1, 2, 3, 4, 5]);
8 sig1.consume(6);
9 assert(sig1.empty && sig1.fetch());

Meta