Я работаю в основном на системах Windows и Windows CE, где CreateFile
, ReadFile
и WriteFile
- рабочие лошадки, независимо от того, нахожусь ли я на родной земле Win32 или на управляемой .Net земле.
У меня до сих пор никогда не было очевидных проблем с записью или чтением больших файлов в одном чанке, в отличие от зацикливания до обработки нескольких меньших чанков. Обычно я делегирую работу ввода-вывода фоновому потоку, который уведомляет меня о завершении.
Но, глядя на учебники по IO файлов или «примеры из учебников», я часто нахожу «цикл с небольшими кусками», используемый без какого-либо объяснения того, почему он используется вместо более очевидного (осмелюсь сказать!) «Сделать все это в один раз».
Есть ли у меня какие-то недостатки, которые я не понял?
Пояснение:
По большой файл Я сравнил свой отдельный кусок с несколькими. Упомянутые мною примеры с несколькими чанками часто имеют размеры чанков в 1024 байта в Windows CE и в 10 раз больше на рабочем столе. Мои большие файлы обычно представляют собой двоичные файлы, такие как фотографии с камер с мобильных телефонов и т. Д., И в таком порядке порядка 2-10 МБ. Другими словами, не близко к 1 ГБ.