InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");
上記のように、サブフォルダーのアセットフォルダーにファイルがあります。ただし、ファイルを取得できません。assetsフォルダーにサブフォルダーを指定する特別な方法はありますか?
イアン
編集:サブフォルダーについて間違っていました。
このコードは1.5で正常に動作します(ファイルの場合sample.txt
はsub
のassets
フォルダーの下に配置されます):
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();
名前は正しいですか?
"MyFolder/" + "MyFile.db3"
アセットフォルダに追加するファイルのファイル名は小文字にする必要があります。そのため、MyFolderやMyfile.db3などのファイル名は無効です。それらの名前を「myfolder」と「myfile.db3」に変更すると、すべて問題なく動作します。
アセットファイルは1 MBを超えていますか?
このサイズを超えるアセットを開こうとすると、同じ奇妙な空のIOExceptionが発生します。それがサブフォルダーにあるという事実は、赤いニシンかもしれません。大きなテキストファイルを開こうとしているので、分割してこの制限を回避できます。 .db3ファイルで同様のことができますか?