【问题标题】:Flex 3 / Air: Writing blank new lines to files using FileStreamFlex 3 / Air:使用 FileStream 将空白新行写入文件
【发布时间】:2011-02-03 23:09:04
【问题描述】:

我想使用 Flex 3 / Air 将一些文本直接写入文件。文件上的文本(称为“Database.txt”)必须具有以下格式:

1号线

第2行

第 3 行

var FS:FileStream = new FileStream();
var DatabaseFile:File = File.desktopDirectory.resolvePath("Database.txt");
FS.open(DatabaseFile, FileMode.WRITE);
FS.writeUTFBytes("Line1" + "\n" + "Line2" + "\n" + "Line3");
FS.close();

但它会将以下文本写入文件:

Line1 Line2 Line3.

我很确定我犯了一个非常愚蠢的错误,但我无法弄清楚它是什么。谁能帮帮我?

感谢您的宝贵时间:)

【问题讨论】:

    标签: actionscript-3 flex3 air


    【解决方案1】:

    FS.writeUTFBytes("Line1" + File.lineEnding + "Line2" + File.lineEnding + "Line3");

    【讨论】:

      【解决方案2】:
      byte[] newline = Encoding.ASCII.GetBytes(Environment.NewLine);
      FS.Write(newline, 0, newline.Length);
      

      【讨论】:

      • 你能解释一下吗?这甚至不像是 AS3 代码。
      【解决方案3】:

      您如何打开 Database.txt?如果您使用的是 notepad.exe,它将全部显示在一行上,因为 notepad.exe 被延迟并且不支持 unix 行尾 (\n)。如果您绝对需要在 notepad.exe 中打开它,您需要做的是改用 windows 行尾 (\r\n)。所以你的代码看起来像:

      FS.writeUTFBytes("Line1" + "\r\n" + "Line2" + "\r\n" + "Line3");
      

      但现在您还必须确保在将 txt 文件加载回 AIR 应用程序时,您的代码可以处理这些 windows 行结尾(否则您可能会得到重复的行)

      【讨论】:

      • 天啊!多么简单的解决方案=D。非常感谢=D。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多