load() 및 save() 메서드 사용

Flash Player 10 이상, Adobe AIR 1.5 이상

Flash Player 10에서는 FileReference 클래스에 load()save() 메서드가 추가되었습니다. 이러한 메서드는 AIR 1.5에도 있으며 File 클래스는 FileReference 클래스의 메서드를 상속합니다. 이러한 메서드는 사용자가 Flash Player에서 파일 데이터를 안전하게 로드 및 저장할 수 있도록 설계되었습니다. 그러나 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."); 
}

save() 메서드의 data 매개 변수는 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 클래스를 사용하면 open() 또는 openAsync() 메서드의 fileMode 매개 변수를 설정하여 파일에 대한 파일 액세스 유형을 지정할 수 있습니다.

  • FileStream 클래스를 사용하면 사용자에게 [열기] 또는 [저장] 대화 상자를 제공하지 않고도 파일에 데이터를 저장할 수 있습니다.

  • FileStream 클래스로 데이터를 읽으면 바이트 배열 이외의 유형을 직접 사용할 수 있습니다.