Использование методов load() и save()

Flash Player 10 и более поздних версий, Adobe AIR 1.5 и более поздних версий

В проигрывателе Adobe Flash Player 10 к классу FileReference добавлены методы load() и save() . Эти методы также присутствуют в AIR 1.5, и класс File наследует их из класса FileReference. Эти методы были разработаны для обеспечения пользователей безопасными средствами загрузки и сохранения данных их файлов в проигрыватель Adobe Flash. Но приложения AIR могут также использовать эти методы как простой способ асинхронной загрузки и сохранения файлов.

Например, в следующем коде строка сохраняется в текстовый файл:

var file:File = File.applicationStorageDirectory.resolvePath("test.txt"); 
var str:String = "Hello."; 
file.addEventListener(Event.COMPLETE, fileSaved); 
file.save(str); 
function fileSaved(event:Event):void 
{ 
    trace("Done."); 
}

Параметр data метода save() может принимать значения String, XML или ByteArrayЗ. Если значением аргумента является String или XML, метод сохраняет файл как текстовый файл с кодировкой UTF-8.

При выполнении этого демонстрационного кода приложение открывает диалоговое окно, в котором пользователь выбирает местоположение для сохраненных файлов.

В следующем коде загружается строка из текстового файла с кодировкой UTF-8:

var file:File = File.applicationStorageDirectory.resolvePath("test.txt"); 
file.addEventListener(Event.COMPLETE, loaded); 
file.load(); 
var str:String; 
function loaded(event:Event):void 
{ 
    var bytes:ByteArray = file.data; 
    str = bytes.readUTFBytes(bytes.length); 
    trace(str); 
}

Класс FileStream предоставляет больше функциональных возможностей, чем методы load() и save() :

  • Используя класс FileStream, можно считывать и записывать данные как синхронно, так и асинхронно.

  • Использование класса FileStream позволяет выполнить инкрементальную запись в файл.

  • Использование класса FileStream позволяет открывать файл для произвольного доступа (как для чтения, так и для записи любого раздела файла).

  • Класс FileStream позволяет указывать имеющийся тип доступа к файлу, устанавливая параметр fileMode в методе open() или openAsync() .

  • Класс FileStream позволяет сохранять данные в файлы, не предлагая пользователю диалоговые окна открытия или сохранения файлов.

  • При чтении данных с помощью класса FileStream можно напрямую использовать типы, отличные от байтовых массивов.