AS3将列表保存为.txt文件

时间:2013-10-27 03:36:57

标签: actionscript-3 flash

我正在尝试将列表保存到AS3中的.txt文件中。 我之前将它保存为.ulist:

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

所以我将列表放入数组中。 哪个工作正常,但我需要将其作为.txt文件。我尝试将格式更改为.txt,如:

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

也有效,但是当我打开文本文件时,列表中的每个标签都在那里,但也有不受欢迎的随机字符。我需要从列表中分隔的每个标签(输入)。

如何在没有出现额外不需要的字符的情况下将其保存到.txt文件中? 我还没有在AS3上取得进步,所以任何建议都会非常感激。我找不到任何像我网上那样情况的人。

感谢。

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分: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();

如果您的对象不是标准对象(ArrayObject等),则必须使用registerClassAlias注册该类,以便Flash知道如何将AMF文件解码为其中数据类型。