我使用以下内容将文件上传到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();
}
我的文件看起来像这样:
以下是原始文件:http://sesija.com/up/1.txt
我需要阅读上传的文件并解析它。问题是,在我e.currentTarget.data.toString();
中,我只得到'1
',而不是字符串的其余部分。
关于如何成功读取整个txt文件的任何想法?
答案 0 :(得分: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(", "));
您可能需要阅读Working with byte arrays