отрежьте то, что вы хотите заполнить
ubyte[1024*8] ogg;
ogg=ogg[0..len]
file.read(ogg);
или используйте цикл для копирования (так как массив размером 2 ^ 64 байта не помещается в памяти)
ubyte[1024*16] ogg;
while(len>0 && (int read=file.read(ogg[0..$>len?len:$]))!=0){
oggout.write(ogg[0..read]);
len-=read;//len is the amount still to be read
}
примечание writeln("Creating file ",counter, ".ogg");
более эффективно, чем concat, чем write (способ java), поскольку не создает бесполезных строк (а создание строки формата во время выполнения рано или поздно выдает ошибку в первом %
Вы не учитываете)