0

我正在尝试将列表保存到 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 上还没有进步,所以任何建议都会非常感激。我在网上找不到像我这样的情况的任何其他人。

谢谢。

4

2 回答 2

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");
}
于 2013-10-27T04:01:02.443 回答
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,等),您必须使用registerClassAliasObject注册该类,以便 Flash 知道如何将 AMF 文件解码为它的数据类型。

于 2013-10-27T04:26:34.447 回答