Я пытаюсь прочитать очень большой файл в AS3, и у меня возникают проблемы со средой выполнения, которая просто вылетает на меня. В настоящее время я использую FileStream для асинхронного открытия файла. Это не работает (происходит сбой без исключения) для файлов размером более 300 МБ.
_fileStream = new FileStream();
_fileStream.addEventListener(IOErrorEvent.IO_ERROR, loadError);
_fileStream.addEventListener(Event.COMPLETE, loadComplete);
_fileStream.openAsync(myFile, FileMode.READ);
При просмотре документации кажется, что класс FileStream все еще пытается прочитать весь файл в память (что плохо для больших файлов).
Существует ли более подходящий класс для чтения больших файлов? Я действительно хотел бы что-то вроде буферизованного класса FileStream, который загружает только байты из файлов, которые будут прочитаны следующим.
Я ожидаю, что мне, возможно, потребуется написать класс, который сделает это для меня, но тогда мне нужно будет читать только часть файла за раз. Я предполагаю, что я могу сделать это, устанавливая свойства position и readAhead FileStream для чтения фрагмента из файла за раз. Я хотел бы сэкономить время, если такой класс уже существует.
Есть ли хороший способ обработки больших файлов в AS3 без загрузки всего содержимого в память?