通常我喜欢在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");
不过,我想知道任何替代解决方案,如果有人有这样的解决方案以及我的第二个问题的答案。
答案 0 :(得分:1)
单向(从资产文件夹中读取):
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);