2014-12-07 137 views
0

我正試圖將SQL數據庫導入到我的Adobe Air iOS應用程序中。我有調用工作,一切似乎工作,但新的數據庫文件不能被讀取。以下是我的代碼。AS3將文件流保存到文件

function onInvoke(event:InvokeEvent):void{ 
    if(event.arguments && event.arguments.length) 
    {  
     contentUri = event.arguments[0] as String; 
     file_db = new File(contentUri); 
     fs_db = new FileStream(); 
     fs_db.addEventListener(Event.COMPLETE, import_db); 
     fs_db.openAsync(file_db, FileMode.READ);  
    } 
} 

我的導入功能如下:

function import_db(event:Event):void{ 

    fs_db.removeEventListener(Event.COMPLETE, import_db); 
    var fs:FileStream = new FileStream(); 
    var myfile:File=File.applicationStorageDirectory.resolvePath("testDB.db"); 
    var fileContent:String = fs_db.readUTFBytes(fs_db.bytesAvailable); 

    fs.open(myfile,FileMode.WRITE); 
    fs.writeUTFBytes(fileContent); 
    fs.addEventListener(Event.CLOSE, fileClosed); 
    fs.close(); 


    function fileClosed(e:Event):void{ 
    // do other stuff 
    } 
}    

每一件事似乎執行,但是當我嘗試連接到數據庫,我收到SQL錯誤:

錯誤#2044:未處理SQLErrorEvent :. errorID = 3138,operation = open,message =錯誤#3138:打開的文件不是數據庫文件。

任何指導理解

回答

0

想通了,讀字節轉換爲bytearray,然後進入該文件。

var mybytes:ByteArray=new ByteArray(); 
fs_db.readBytes(mybytes,0,fs_db.bytesAvailable); 


fs.openAsync(myfile,FileMode.WRITE); 
fs.writeBytes(mybytes,0,mybytes.length);