Hatena::ブログ(Diary)

shirokurostoneのメモ帳

2011-10-14

File APIを使って書いたり読んだり

| 21:00

Chrome限定.更に--unlimited-quota-for-filesオプションを付けて起動しないと使えないので注意.

ベンダープレフィックスが必要とわからずに結構詰まったんだけど,こういう情報ってどこを参照すればいいんだろう?

//エラーハンドリング用
var errorCallback = function(e){
  alert("File Error : "+e.code);
};

//書いたり
webkitRequestFileSystem(PERSISTENT, 1024*1024, function(fileSystem){                                                                                                          
  fileSystem.root.getFile("testfile.txt", {'create':true}, function(fileEntry){                                                                                               
    fileEntry.createWriter(function(fileWriter){                                                                                                                              
      var blobBuilder = new WebKitBlobBuilder();                                                                                                                              
      blobBuilder.append("File API Test!!");
 
      fileWriter.onwrite = function(e){                                                                                                                                       
        alert("write completed.");                                                                                                                                            
      };                                                                                                                                                                      
      fileWriter.onerror = function(e){                                                                                                                                       
        alert("write failed : "+e);                                                                                                                                           
      };                                                                                                                                                                      
                                                                                                                                                                                
      fileWriter.write(blobBuilder.getBlob("text/plain"));                                                                                                                      
    }, errorCallback);                                                                                                                                                        
  }, errorCallback);                                                                                                                                                          
}, errorCallback);


// 読んだり
webkitRequestFileSystem(PERSISTENT, 1024*1024, function(fileSystem){
  fileSystem.root.getFile("testfile.txt", null, function(fileEntry){
    fileEntry.file(function(file){
      var fileReader = new FileReader();

      fileReader.onloadend = function(e){
        alert("read completed : "+fileReader.result);
      };
      fileReader.onerror = function(e){
        alert("read failed : "+e);
      };

      fileReader.readAsText(file, "UTF-8");
    }, errorCallback);
  }, errorCallback);
}, errorCallback);

参考

トラックバック - http://d.hatena.ne.jp/shirokurostone/20111014/1318593601
リンク元