XPLATFORM 101
이번에는 파일 쓰기입니다.
단순한 텍스트 파일부터 다양한 포맷의 파일을 이론적으로는 지원합니다.
(물론 텍스트가 아니라면 쉽지는 않을 겁니다. ~~)

일단 write() 메소드를 사용하면 파일에 쓰기가 가능합니다.
var vfile = new VirtualFile("abc.txt",VirtualFile.openRead);
trace(vfile.write("Hello"));
vfile.close();
write() 메소드가 성공적으로 처리되면 true라는 메시지가 나와야 하는데
막상 해보면 false 가 나옵니다. 이런...


문제는 VirtualFile을 여는 방식에 있습니다.
http://cafe.naver.com/xplatform101/316 에서 몇가지 옵션을 살펴보았는데
VirtualFile.openRead 는 읽기 전용입니다. 쓰기를 허용하지 않죠.

파일을 쓰려면 VirtualFile.openWrite 또는 VirtualFile.openAppend 를 사용해야 합니다.
var vfile = new VirtualFile("abc.txt",VirtualFile.openWrite);
trace(vfile.write("Hello"));
vfile.close();
이렇게 처리하면 해당 파일에 "Hello" 라는 메시지가 써지게 됩니다.
이 옵션에서는 기존 파일 내용이 다 지워지고 다시 내용을 쓰게 됩니다.
VirtualFile.openAppend 를 사용하면 기존 파일의 뒤에 이어서 내용을 씁니다.
작업 성격에 따라 적절한 옵션을 선택해야 겠죠.

seek() 메소드를 사용하게 되면 내용이 기록되는 지점을 변경할 수 있습니다.
예를 들어 아래와 같이
vfile.seek(10, VirtualFile.seekEnd );
라고 하면 파일이 끝나는 지점에서 10byte만큼 이동한 상태에서 내용을 쓰게 됩니다.
중간에 내용이 들어가는 경우에는 그냥 파일을 덮어쓰는데 insert/overwirte 모드를 설정하는 것은 안되나 봅니다.

http://cafe.naver.com/xplatform101/323