Flash Air 3.2 FileStream 结果 'undefined'

Flash Air 3.2 FileStream resulting 'undefined'

我正在使用 Flash Air 3.2(旧的,我知道),我试图通过使用 FileStream 读取文本文件开始。我找到的代码找到了文件,并将文本放入文件中,但每当我尝试 运行 代码时,它都会 returns 'undefined'。这是我的代码:

import flash.filesystem.*
import flash.net.*
import flash.utils.ByteArray;
import flash.events.*

var myFile:File = File.applicationStorageDirectory.resolvePath("test.txt"); 
var myFileStream:FileStream = new FileStream(); 
myFileStream.addEventListener(Event.COMPLETE, completeHandler); 
myFileStream.openAsync(myFile, FileMode.READ); 
var bytes:ByteArray = new ByteArray(); 

function completeHandler(event:Event):void  
{ 
    myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); 
    trace(myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable));
}

非常感谢任何帮助!

您未定义,因为 FileStreamreadBytes 方法具有 void 的 return 类型。从该方法读取的字节被放入您传递给它的字节数组中,而不是直接从该方法中 returned。

myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); //this returns void/undefined by design regardless of the contents of bytes
trace(bytes); //this will trace the byte array object that was populated with the above line

如果您只是想阅读文本文件,您应该可以使用快捷方式:

myFileStream.readUTF();