【问题标题】:AS3 Saving list as .txt fileAS3 将列表另存为 .txt 文件
【发布时间】:2013-10-27 03:36:57
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    如果你想保存为 .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");
    }
    

    【讨论】:

      【解决方案2】:

      您还可以将任何类型的对象保存到 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 文件解码为其数据类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多