我正在尝试将列表保存到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上取得进步,所以任何建议都会非常感激。我找不到任何像我网上那样情况的人。
感谢。
答案 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();
如果您的对象不是标准对象(Array
,Object
等),则必须使用registerClassAlias注册该类,以便Flash知道如何将AMF文件解码为其中数据类型。