Позвольте мне объяснить, что мне нужно для достижения. Мне нужно загрузить файл в ОЗУ и проанализировать его структуру. То, что я делаю это:C# массив для поддержки поддержки архитектуры файлов страниц
//Stream streamFile;
byte[] bytesFileBuff = new byte[streamFile.Length];
if(streamFile.Read(bytesFileBuff, 0, streamFile.Length) == streamFile.Length)
{
//Loaded OK, can now analyze 'bytesFileBuff'
//Go through bytes in 'bytesFileBuff' array from 0 to `streamFile.Length`
}
Но в моем previous experience с Windows, и 32-разрядные процессы, похоже, даже меньшего количества оперативной памяти может быть трудно выделить. (В этом конкретном примере мне не удалось выделить 512 МБ на компьютере под управлением Windows 7 с 16 ГБ установленной оперативной памяти.)
Мне было любопытно, есть ли специальный класс, который позволил бы мне работать с содержимым в файле гипотетически любой длины (путем реализации внутреннего аналога архитектуры файла страниц)?
ли в вашем анализ требует произвольного доступа к файлу? или вы можете сделать это линейно? Даже если вам нужно несколько проходов, с большими файлами вам всегда лучше обрабатывать его как поток. –
@EuroMicelli: Да, я тоже склоняюсь к использованию потоков. Слишком сложно работать с ними (или, я бы сказал, не так просто, как с байтовым массивом). – c00000fd