Take the 2-minute tour ×

I have a string the user has typed and I want to save it into a file on the users harddrive. Can you do that? And if so, how?

share|improve this question
add comment

4 Answers

up vote 7 down vote accepted

Yes you can, with FileReference. This is basically how it's done:

var bytes:ByteArray = new ByteArray();
var fileRef:FileReference=new FileReference();
fileRef.save("fileContent", "fileName");

Doesn't look too hard, does it? And here's a video-tutorial on it too:


And the documentation:


Hope that helps.

share|improve this answer
add comment

In addition, you must have Flash Player 10 and a Flex Gumbo SDK installed in your Flex Builder 3.

You can also have a look the following example: http://blog.flexexamples.com/2008/08/25/saving-files-locally-using-the-filereference-classs-save-method-in-flash-player-10/

share|improve this answer
the link provided is a dead link –  Yozef Aug 18 '13 at 1:09
add comment

Since I had a function to output bytes to a file (because I was doing something with bitmaps), I reused it to output a string as well, like this:

var filename:String = "/Users/me/path/to/file.txt";
var byteArray:ByteArray = new ByteArray();
outFile(filename, byteArray);

private static function outFile(fileName:String, data:ByteArray):void {
    var outFile:File = File.desktopDirectory; // dest folder is desktop
    outFile = outFile.resolvePath(fileName);  // name of file to write
    var outStream:FileStream = new FileStream();
    // open output file stream in WRITE mode
    outStream.open(outFile, FileMode.WRITE);
    // write out the file
    outStream.writeBytes(data, 0, data.length);
    // close it
share|improve this answer
add comment

In Flex 3 no you can't do it unless you upload the file to the server and then download the file via a url to the desktop.

In Air or Flex 4 you can save it directly from the application to the desktop as detailed above.

share|improve this answer
add comment

Your Answer

