libro
www.tuyano.com
JavaScriptで作ろう! Windows 8 アプリ・プログラミング入門

ファイルアクセス (4/6)

作成:2012-12-10 08:00
更新:2012-12-10 08:00

■テキストファイルの読み込み

続いて、テキストファイルの読み込みについて説明しましょう。

ファイルの読み込みも、まずはWindows.Storage.KnownFoldersにあるdocumentsLibraryオブジェクトのメソッドを使ってFileを取得することから始まります。ただし、書き出しとは使うメソッドが違います。

読み込みでは、documentsLibraryの「getFileAsync」でFileオブジェクトを取得します。これは以下の様な形になっています。
Windows.Storage.KnownFolders.documentsLibrary.
    getFileAsync(ファイルパス).done( 関数 );
getFileAsyncの引数にファイル名(フォルダ内にある場合にはファイルのパス)を指定します。その後にメソッドチェーンとして「done」というメソッドをつなげて記述し呼び出します。これは、Fileオブジェクトの取得が完了した時に処理を実行するためのもので、引数内に関数定義を用意しておきます。この関数は、以下の様な形になります。
function(file){……ここに読み込み時の処理を用意する……}
引数に、取得されたFileオブジェクトが渡されます。ですから、このfileを使ってファイルの読み込みを行えばいいわけです。ファイルの読み込みはWindows.Storage.FileIOオブジェクトの「readTextAsync」というメソッドを利用します。
Windows.Storage.FileIO.readTextAsync(【File】).then( 関数 );
引数には、読み込むファイルのFileオブジェクトを指定します。この後にある「then」というメソッドは、テキストの読み込みが完了した時に呼び出される処理を指定するものです。引数には以下のような関数定義を用意します。
function (contents) {……ここに読み込んだテキストの処理を用意する……}
引数には、ファイルから読み込んだテキスト値が保管されます。後は、この関数内で、引数のテキストを利用した処理を書けばいいわけです。

では、簡単な利用例を以下にあげておきましょう。ここでは、「ドキュメント」フォルダ内にある「created_by_sampleapp.txt」というファイルを読み込んで、id="text1"のタグのtextContentに設定して表示する、というものです。あらかじめid="text1"のタグを用意し、btnLoadClickをボタンのクリックイベントなどにバインドして利用してください。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

  function btnLoadClick(mouseEvent) {
        Windows.Storage.KnownFolders.documentsLibrary.getFileAsync(
            "created_by_sampleapp.txt").done(
                function (file) {
                    Windows.Storage.FileIO.readTextAsync(file).then(
                        function (contents) {
                            var text1 = document.getElementById("text1");
                            text1.textContent = contents;
                            new Windows.UI.Popups.MessageDialog("ロードしました。").showAsync();
                    });
            });

    }
※関連コンテンツ

「JavaScriptで作ろう! Windows 8 アプリ・プログラミング入門」に戻る