Flex: чтение байтового массива

Я использую следующее для загрузки файла во 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", а не остальную часть строки.

Любая идея о том, как успешно прочитать весь этот текстовый файл?


person Adnan    schedule 27.09.2010    source источник


Ответы (1)


Свойство 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(", "));

Вы можете прочитать Работа с байтовыми массивами

person Amarghosh    schedule 27.09.2010