从assets文件夹中读取excel工作簿时发出问题

时间:2013-07-22 11:22:53

标签: android excel

通常我喜欢在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");

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

1 个答案:

答案 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);