Flex: чтение bytearray - PullRequest
       16

Flex: чтение bytearray

3 голосов
/ 27 сентября 2010

Я использую следующее для загрузки файла во Flex:

        private var filer:FileReference;
        protected function button1_clickHandler(event:MouseEvent):void
        {
            var fd:String = "Files (*)"; 
            var fe:String = "*"; 
            var ff:FileFilter = new FileFilter(fd, fe);
            filer = new FileReference();
            filer.addEventListener(Event.SELECT, onFileSelect);
            filer.browse(new Array(ff));
            filer.addEventListener(Event.COMPLETE, 
                function (e:Event):void {
                    e.currentTarget.data.toString();
                }
            );
        }
        private function onFileSelect(e:Event):void {
            filer.load(); 
        }

И мой файл выглядит так: alt text

Вот оригинальный файл: http://sesija.com/up/1.txt

Мне нужно прочитать загруженный файл и разобрать его. Проблема в том, что в моем e.currentTarget.data.toString(); я получаю только «1», а не остальную часть строки.

Есть идеи, как успешно прочитать весь текстовый файл?

1 Ответ

1 голос
/ 27 сентября 2010

Свойство data является ByteArray .Вместо использования метода toString (который явно обрабатывает NULL-байт как конец строки), используйте специальные методы чтения класса ByteArray, например readByte, readInt и т. Д.

var array:Array = [];
var ba:ByteArray = e.currentTarget.data as ByteArray;
while(ba.bytesAvailable != 0){
    array.push(ba.readByte());
}
trace(array.join(", "));

Возможно, вы захотитечитать Работа с байтовыми массивами

...