android - 从 Assets 文件夹读取 Excel 工作簿时出现问题

标签 android excel

通常我喜欢将我的应用程序文件保存在 assets 中,然后我从该文件夹中读取我的文件。所以,当我试图从 Assets 文件夹中读取我的 excel 文件(这是一个 97-2003 工作簿)时,它失败了(进程 - 1)。但是,当我使用 adb.exe 将文件推送到 /mnt/sdcard/ 然后尝试从那里读取时,它有效(进程 - 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> 此外,我保存在 Assets 中的文件的文件大小是否有任何限制?如果是这样,那么我可以将它保存在其他地方吗?

谢谢。

编辑:我有这个可以工作:

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

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

最佳答案

一种方式(从 Assets 文件夹读取):

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

关于android - 从 Assets 文件夹读取 Excel 工作簿时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786309/

相关文章:

android - 按不在结果集中的术语排序

android - AchartEngine XYchart背景颜色问题

android - 使用 getStream 的聊天和提要应用程序,具有自定义 UI

android - 如何在 Android 中查看完整布局?

vba - CopyPaste中的应用程序定义或对象定义的错误

java - 部署到 weblogic

vba - 获取列的多个部分的计数

vba - 流式传输实时数据时,Worksheet_Change 不会启动

excel - 如何在Excel中编辑图表的标签?

android - 如何在 Android 中从矩形位图创建方形位图