1

通常我喜欢将我的文件保存在我的应用程序中assets,然后我从那个文件夹中读取我的文件。因此,当我尝试从 assets 文件夹中读取我的 excel 文件(这是 97-2003 工作簿)时,它失败了(进程 - 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");

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

4

1 回答 1

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);
于 2013-08-06T12:46:51.030 回答