2010-04-03 66 views
2

我想使用Flex 3/Air将文本直接写入文件。对文件中的文本(称之为“Database.txt”)必须具有以下格式:Flex 3/Air:使用FileStream将空白新行写入文件

一号线

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。

我很确定我在做一个非常虚拟的错误,但我无法弄清楚它是什么。谁能帮我?

谢谢你的时间:)

回答

6

你怎么打开Database.txt?如果您使用的是notepad.exe,它将全部显示在同一行上,因为notepad.exe会延迟并且不支持unix行尾(\n)。如果你确实需要在notepad.exe中打开它,你需要做的是使用窗口行结束符(\r\n)。所以,你的代码看起来像:

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

但现在你也必须确保在加载txt文件时,返回到您的AIR应用程序代码可以处理这些窗口行尾(或者你可能会出现重复的行)

+0

OMG!多么简单的解决方案= D。非常感谢你= D。 – Edward 2010-04-06 17:44:23

-1
byte[] newline = Encoding.ASCII.GetBytes(Environment.NewLine); 
FS.Write(newline, 0, newline.Length); 
+0

你能解释一下这个吗?这甚至不像AS3代码。 – OMA 2016-05-27 11:57:00