2017-07-19 79 views
0

我正在使用Flash Air 3.2(舊的,我知道),我試圖通過使用FileStream讀取文本文件開始。我找到的代碼找到了文件,並且我已經將文本放入了文件中,但每當我嘗試運行代碼時,它都會返回'undefined'。這裏是我的代碼:Flash Air 3.2 FileStream導致'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)); 
} 

任何幫助,非常感謝!

回答

1

由於FileStreamreadBytes方法的返回類型爲void,所以您會得到未定義的值。從該方法讀取的字節被放入您傳遞給它的字節數組中,而不是直接從方法返回。

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();