android - 如何使用 Apache POI 给出驻留在 android 项目 Assets 文件夹中的 xls 文件的路径

标签 android apache-poi android-file android-assets

我想读取驻留在 android 项目的 Assets 文件夹中的 .xls 文件。我正在使用 apache POI 来读取文件。

但我不确定 Assets 文件夹中文件的路径可能是什么。

我的代码如下:

// Creating Input Stream 
File file = new File("file:///assets/test.xls");
FileInputStream myInput = new FileInputStream(file);

// Create a POIFSFileSystem object 
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

// Create a workbook using the File System 
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);

// Get the first sheet from workbook 
HSSFSheet mySheet = myWorkBook.getSheetAt(0);

使用这段代码,我得到以下错误:

07-08 11:10:36.531: W/System.err(4417): java.io.FileNotFoundException: /file:/assets/test.xls: open failed: ENOENT (No such file or directory)
07-08 11:10:36.531: W/System.err(4417):     at libcore.io.IoBridge.open(IoBridge.java:416)
07-08 11:10:36.531: W/System.err(4417):     at java.io.FileInputStream.<init>(FileInputStream.java:78)
07-08 11:10:36.531: W/System.err(4417):     at com.example.myfirstapp.MainActivity$1.onClick(MainActivity.java:78)
07-08 11:10:36.531: W/System.err(4417):     at android.view.View.performClick(View.java:4222)
07-08 11:10:36.531: W/System.err(4417):     at android.view.View$PerformClick.run(View.java:17273)
07-08 11:10:36.531: W/System.err(4417):     at android.os.Handler.handleCallback(Handler.java:615)
07-08 11:10:36.531: W/System.err(4417):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-08 11:10:36.531: W/System.err(4417):     at android.os.Looper.loop(Looper.java:137)
07-08 11:10:36.531: W/System.err(4417):     at android.app.ActivityThread.main(ActivityThread.java:4895)
07-08 11:10:36.539: W/System.err(4417):     at java.lang.reflect.Method.invokeNative(Native Method)
07-08 11:10:36.539: W/System.err(4417):     at java.lang.reflect.Method.invoke(Method.java:511)
07-08 11:10:36.539: W/System.err(4417):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
07-08 11:10:36.539: W/System.err(4417):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
07-08 11:10:36.539: W/System.err(4417):     at dalvik.system.NativeStart.main(Native Method)
07-08 11:10:36.539: W/System.err(4417): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
07-08 11:10:36.539: W/System.err(4417):     at libcore.io.Posix.open(Native Method)
07-08 11:10:36.539: W/System.err(4417):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
07-08 11:10:36.539: W/System.err(4417):     at libcore.io.IoBridge.open(IoBridge.java:400)
07-08 11:10:36.539: W/System.err(4417):     ... 13 more

我必须提供什么路径才能读取我的 xls 文件?

最佳答案

file:///assets/test.xls

以上语法不正确。

路径必须用两条斜杠隔开,像这样:

C:\\\Users\\\user\\\Desktop\\\something.xls.

关于android - 如何使用 Apache POI 给出驻留在 android 项目 Assets 文件夹中的 xls 文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624480/

相关文章:

android - G+ 登录入门结果为 "An internal error occurred"

java - VLOOKUP_ADD_Array Apache POI

java - 无法使用 Apache POI 打开 Excel

java - Java 中的 PDF 到 Excel

java - android读取和写入位图失败

android - Android 应用程序和服务器之间哪个更好? socket 还是定时器?

java - 从 JSON 中获取值并将其放入 String

android - 如何从 Activity 外部将文件写入 Android 设备?

android - 按类型过滤 assetManager.list 文件

android - 添加了 WAKE_LOCK 权限,现在机器人出现问题