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 클래스로 데이터를 읽으면 바이트 배열 이외의 유형을 직접 사용할 수 있습니다.