2010-06-13 150 views
22
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3"); 

我在資產文件夾中的一個子文件夾中的文件如上。它不會獲取文件,是否有一種特殊的方式來指定資產文件夾中的子文件夾?Android資產與子文件夾

Ian

+1

看起來是正確的 - 是否有任何異常(如拋出IOException)? – 2010-06-13 21:20:14

+0

是的,但奇怪的是,例外是空的,沒有「原因」 – 2010-06-13 22:13:16

+0

如果你可以將堆棧跟蹤粘貼到你原來的問題中,那會很有幫助。 – 2010-06-13 23:56:02

回答

39

編輯:關於子文件夾錯了。
此代碼工作在1.5就好了(在assetssub文件夾下放置一個文件sample.txt):

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(); 

你確定你有名字嗎?

+0

文檔說,你可以。 – 2010-06-13 23:39:59

5

您的資產文件是否超過1 MB?

我注意到,如果我嘗試打開超過此大小的資產,我會得到相同的奇數空IOException。它在子文件夾中的事實可能是一條紅鯡魚。我試圖打開一個大的文本文件,所以我可以通過分割來解決這個限制。你能做類似於你的.db3文件嗎?

+0

omfg wtf !!!這是一個愚蠢的錯誤,他們應該解決這個問題。非常感謝你寫這個答案,這對我來說也是一樣的情況,我在「music/blah.ogg」下有一個.ogg文件,因爲它已經超過1 MB而不工作,但另一個文件「music/foo.ogg「的作品,它只有26 kb ... – 2012-09-08 11:11:06

5
"MyFolder/" + "MyFile.db3" 

添加到資產文件夾的文件的文件名必須使用小寫字母。 因此,MyFolder和Myfile.db3等文件名無效。將它們重命名爲「myfolder」和「myfile.db3」,那麼一切都會好起來的。

相關問題