2013-10-27 322 views
0

我想將列表保存爲AS3中的.txt文件。AS3保存列表爲.txt文件

var filefilter1:FileReference = new FileReference(); 
var names:ByteArray = new ByteArray(); 
names.writeInt(31); 
names.writeObject(grabberMenu.grabbedAccounts.dataProvider.toArray()); 
filefilter1.save(names, "New User List.ulist"); 

所以我把列表到一個數組: 我以前用它保存爲.ulist。 哪些工作正常,但我需要把它作爲一個.txt文件。我試着只是改變了形式改爲.txt,如:

filefilter1.save(names, "New User List.txt"); 

也工作,但是當我打開文本文件,從列表中的每個標籤在那裏,但也有不想要的隨機字符周圍蔓延。我需要從列表中分離每個標籤(輸入)。

如何將它保存到.txt文件中,而不會出現額外的不需要的字符? 我仍然沒有在AS3先進的,所以任何意見將不勝感激。我找不到像我的在線情況的任何其他人。

謝謝。

回答

2

如果要保存爲.txt,則應該使用writeUTFBytes而不是writeObject。

例如

names.writeUTFBytes("31\n"); 
var arr:Array = grabberMenu.grabbedAccounts.dataProvider.toArray(); 
for (var i:int = 0; i < arr.length; i++) { 
    names.writeUTFBytes(arr[i].toString() + "\n"); 
} 
0

您也可以在任何類型的對象保存到一個AMF文件,並使用任何你想要的擴展。加載回來時,AMF文件完全按照本地對象(變量,數組,類的實例等)工作。

這是你如何保存文件(你可以使用任何你想要的擴展名):

var file:File = new File("myFile.xxx"); 
var stream:FileStream = new FileStream(); 
stream.open(file, FileMode.WRITE); 
stream.writeObject(yourObject); 
stream.close(); 

這是你如何讀回:

var file:File = new File("myFile.xxx"); 
var stream:FileStream = new FileStream(); 
var decodedObject; 
stream.open(file, FileMode.READ); 
decodedObject = stream.readObject(); 
stream.close(); 

如果你的對象是不是一個標準對象(Array,Object等),您必須使用registerClassAlias註冊該類,以便Flash知道如何將AMF文件解碼爲其數據類型。