2010-04-03 3 views
2

Je souhaite écrire du texte directement dans un fichier à l'aide de Flex 3/Air. Le texte sur le fichier (appeler "database.txt") doit avoir le format suivant:Flex 3/Air: écriture de nouvelles lignes vides dans des fichiers à l'aide de FileStream

Ligne1

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

Mais il écrit le texte suivant à la fichier:

Ligne1 Ligne2 Ligne3. Je suis assez sûr que je fais une erreur très fictive, mais je ne peux pas comprendre ce que c'est. Quelqu'un peut-il m'aider?

Merci pour votre temps :)

Répondre

6

Comment vous ouvrez database.txt? Si vous utilisez notepad.exe, il apparaîtra sur une seule ligne, car notepad.exe est retardé et ne prend pas en charge les fins de ligne unix (\n). Si vous en avez absolument besoin pour l'ouvrir dans notepad.exe, vous devez plutôt utiliser les fins de ligne Windows (\r\n). Donc, votre code ressemblerait à ceci:

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

Mais maintenant, vous devez aussi vous assurer que votre code peut gérer ces fenêtres fins de ligne lors du chargement du fichier txt retour dans votre application AIR (ou vous pourriez finir avec des lignes en double)

+0

OMG! Quelle solution facile = D. Merci beaucoup = D. – Edward

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

Pourriez-vous s'il vous plaît expliquer un peu? Cela ne ressemble même pas au code AS3. – OMA

Questions connexes