从资产文件夹中读取Excel工作簿时发出

通常情况下,我喜欢将我的文件保存在assets ,然后从该文件夹中读取我的文件。 所以,当我试图从assets文件夹中读取我的excel文件(这是一个97-2003的工作书)时,它失败了(Process-1)。 但是,当我推送文件到/mnt/sdcard/使用adb.exe ,然后尝试从那里读取,它的工作原理(过程-2)。

程序代码 – 1:

 File inputWorkbook = new File((assetManager.open("myFile.xls")).toString()); 

显示的例外情况:

 java.io.FileNotFoundException: /android.content.res.AssetManager$AssetInputStream@40cd4ce0: open failed: ENOENT (No such file or directory) 

程序代码 – 2:

 File inputWorkbook = new File(Environment.getExternalStorageDirectory()+"/myFile.xls"); 

1>任何人都可以告诉我,我做错了什么?

2>另外,对于我保存在资产中的文件,文件大小是否有限制? 如果是这样,那么我可以把它保存在其他地方吗?

谢谢 。

编辑:我有这个工作:

 InputStream dbInputStream = context.getAssets().open("myFile.xls"); 

不过,我想知道任何其他解决scheme,如果有人有这样的解决scheme,以及我的第二个问题的答案。

一种方式(从资产文件夹中读取):

 AssetManager assetManager = m.getInstrumentation().getContext().getResources().getAssets(); InputStream in = assetManager.open(filename); 

另一种方式(从/ mnt / sdcard / Android / data / file读取)

 File file = new File(m.getInstrumentation().getContext().getExternalFilesDir(null), filename); fis = new FileInputStream(file);