2011-11-03 97 views
1

我想从Android上的原始资源文件(以Java)读取数据。 出于某种原因,inStream.read(txt)正在引发异常被抛出。 有人可以告诉我我做错了什么吗? 是否有我需要设置的权限?尝试读取原始资源文件的异常[Android]

try 
{ 
     resourceId = R.raw.testmodel; 
    if(resourceId==0) 
     return false; // invalid id 

    InputStream inStream = context.getResources().openRawResource(resourceId); 

    if(inStream==null) 
     return false; 

    byte[] txt = new byte[512]; 
    inStream.read(txt); 
    //Toast.makeText(context,new String(txt),Toast.LENGTH_LONG).show(); 
    inStream.close(); 
}catch(Exception e) 
{ 
    Toast.makeText(context,"strange exception",Toast.LENGTH_LONG).show(); 
    return false; 
} 
+0

被抛出什么异常。 logcat说什么? –

+0

logcat说我超过了最大数据0_o我并不期待这个。我不知道现在该做什么。 – user980058

+0

文件大小是多少? –

回答

1

压缩apk文件中的资产和原始数据有1MB限制。

版本2.3中删除的限制。

可能的解决方法是 1)将文件拆分为1MB块。 2)给文件名“mp3”的扩展名。具有某些特定扩展名的文件默认情况下不进行压缩,因此不受“压缩”资源的限制。扩展名“mp3”是例外之一。

欲了解更多信息:

https://stackoverflow.com/questions/2860157/load-files-bigger-than-1m-from-assets-folder

https://stackoverflow.com/questions/1273300/ioexception-while-reading-from-inputstream