【问题标题】:How to give path of xls file residing in assets folder of android project using Apache POI如何使用Apache POI提供驻留在android项目资产文件夹中的xls文件的路径
【发布时间】:2014-08-28 18:07:36
【问题描述】:

我想读取位于 android 项目的 assets 文件夹中的 .xls 文件。我正在使用 apache POI 读取文件。

但我不确定资产文件夹中文件的路径是什么。

我的代码如下:

// 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 文件??

【问题讨论】:

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


    【解决方案1】:
    file:///assets/test.xls
    

    以上语法不正确。

    路径必须用两个斜杠分隔,如下所示:

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

    【讨论】:

    • 那么根据您的说法,我的文件路径应该是什么?应该是“文件:\\assets\\test.xls”吗?我试过这个,但它不工作。我得到同样的错误。
    • 您为什么要尝试使用“文件:\\”路径而不是目录路径?
    • 如何从手机中找到C目录!!?我想把它和我的 apk 一起保存,以便在需要时可以阅读它。还有其他方法吗?
    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2020-04-18
    • 2012-11-02
    • 2020-11-10
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多