web-dev-qa-db-ja.com

Androidサブフォルダーのあるアセット

InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

上記のように、サブフォルダーのアセットフォルダーにファイルがあります。ただし、ファイルを取得できません。assetsフォルダーにサブフォルダーを指定する特別な方法はありますか?

イアン

24
Ian Vink

編集:サブフォルダーについて間違っていました。
このコードは1.5で正常に動作します(ファイルの場合sample.txtsubassetsフォルダーの下に配置されます):

InputStream is = getAssets().open("sub/sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
    Log.e("wtf", line);
}
br.close();

名前は正しいですか?

40
yanchenko
"MyFolder/" + "MyFile.db3"

アセットフォルダに追加するファイルのファイル名は小文字にする必要があります。そのため、MyFolderやMyfile.db3などのファイル名は無効です。それらの名前を「myfolder」と「myfile.db3」に変更すると、すべて問題なく動作します。

7
Spark

アセットファイルは1 MBを超えていますか?

このサイズを超えるアセットを開こうとすると、同じ奇妙な空のIOExceptionが発生します。それがサブフォルダーにあるという事実は、赤いニシンかもしれません。大きなテキストファイルを開こうとしているので、分割してこの制限を回避できます。 .db3ファイルで同様のことができますか?

6
CalloRico