ファイルの読み書き

AndroidのSDカードや端末の専用データフォルダに対する読み込みや保存を行うことができます。ファイルの読み書きメソッドには以下のものが用意されています。

droid.saveText(file, text) file に text を保存する
droid.loadText(file) file の内容を読み込んで返す
droid.fileList(path) pathにあるファイル一覧を返す
droid.mkdir(path) pathにディレクトリを作る
droid.deleteFile(path) path のファイルを削除する
droid.fileSize(file) file のファイルサイズを返す
droid.fileExists(file) fileが存在するかチェックして結果を返す

以下、利用例です。

<div class="buttons">
    <button class="func" onclick="TestSave()">Write File</button>
    <button class="func" onclick="TestLoad()">Load File</button>
</div>
<div class="disp" id="file_div">
    &nbsp; ***
</div>
<script>
    function TestSave() {
        var txt = prompt("Input Text!!");
        if (txt == "") { txt = "no input"; }
        droid.saveText("hoge.txt", txt);
        alert("Save Text");
    }
    function TestLoad() {
        var txt = droid.loadText("hoge.txt");
        $("file_div").innerHTML = txt;
        droid.beep();
    }
</script>

Androidでのパスの指定

ファイルパスの部分には、/sdcard/test.txt のように、絶対パスを指定することもできます。

通常読み書きが可能なパス:

/sdcard/*** SDカード以下にある *** のパスを表す
/data/data/パッケージ名/files/*** アプリ専用フォルダのパス *** を表す

読み込みのみ可能なパス:

file:///android_asset/*** プロジェクトの assets フォルダのパス *** を表す

ちなみにパスの指定を省略すると、アプリ専用のフォルダにアクセスします。

  • また、SDカードへのアクセスには、Androidアプリごとのセキュリティ権限が必要です。(AndroidManifest.xml に権限を記述したままにします。)
  • 参考)ヒント/使わない機能の権限を外す