Flex 3 / Air: запись пустых новых строк в файлы с помощью FileStream - PullRequest
2 голосов
/ 03 апреля 2010

Я хочу написать текст прямо в файл, используя Flex 3 / Air. Текст в файле (назовите его «Database.txt») должен иметь следующий формат:

Line1

Line2

Line3

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();

Но в файл записывается следующий текст:

Линия1 Линия2 Линия3.

Я почти уверен, что делаю очень глупую ошибку, но не могу понять, что это. Кто-нибудь может мне помочь?

Спасибо, что уделили время:)

Ответы [ 3 ]

6 голосов
/ 05 апреля 2010

Как вы открываете Database.txt? Если вы используете notepad.exe, он будет отображаться в одной строке, поскольку notepad.exe запаздывает и не поддерживает окончание строки Unix (\n). Если вам абсолютно необходимо, чтобы он открывался в notepad.exe, вам нужно использовать вместо этого окончания строк в Windows (\r\n). Ваш код будет выглядеть так:

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

Но теперь вы также должны убедиться, что ваш код может обрабатывать эти окончания окон Windows при загрузке TXT-файла обратно в приложение AIR (или вы можете получить дублирующиеся строки)

0 голосов
/ 20 августа 2018

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

0 голосов
/ 23 января 2014
byte[] newline = Encoding.ASCII.GetBytes(Environment.NewLine);
FS.Write(newline, 0, newline.Length);
...