【问题标题】:File not found exception Android java找不到文件异常Android java
【发布时间】:2013-08-02 04:53:21
【问题描述】:

我正在开发一个 android 应用程序,我想读取一个 xsl 文件。我有以下代码

    File rootPath=Environment.getExternalStorageDirectory();
   try {
    File randomContactsFile = new File(rootPath.getPath()+"/assets/LoginTest.xlsx");
    System.out.println(randomContactsFile.exists());
    }catch(Exception e){
    }

randomContactsFile.exists() 返回 false,我收到文件未找到异常。

请帮忙。

谢谢

【问题讨论】:

  • 您是否检查了该文件是否存在于assets文件夹中的sd卡上??
  • randomContactsFile.exists() 返回 false 并获取文件未找到异常。 这很明显不是吗!
  • 表示该文件不在指定路径中
  • 文件在那里,所以我为什么要发布问题
  • 你确定你有sd卡权限吗

标签: java android


【解决方案1】:

已解决:

如果即使你确定你已经包含了所有的 jars,你仍然得到这个异常,那么在项目根目录中创建一个 libs 文件夹并将所有 jars 复制到 libs 文件夹中。在 java 构建路径中添加这些 jars(选择所有 jars 并右键单击添加 jars。)

【讨论】:

    【解决方案2】:

    希望对您有帮助:

    您将无法在运行时使用File 访问assets/
    您在运行时使用AssetManager 访问assets/,您可以通过getResources().getAssets() 获得。

    点赞:

    AssetManager assetManager = getResources().getAssets();
    

    并使用assetManager.open(your file name);

    编辑:

    InputStream is = //Open file, and get inputstream
    Workbook workBook = WorkbookFactory.create(is);
    int totalSheets = workBook.getNumberOfSheets();
    for (int i = 0; i <= totalSheets - 1; i++) {
      Sheet sheet = workBook.getSheetAt(i);
      // Do something with the sheet
    }
    

    【讨论】:

    • 谢谢,但我的 Eclipse 无法识别 getAssets() 方法。我们需要使用上下文吗?其实我想用 FileInputStream 打开一个 xls 文件
    • @itin: 是的,伙计,它使用上下文。如果你的类扩展了 Activity,那么它就不需要,否则你将需要它......
    • 但实际上我无法扩展 Activity 类,因为我已经扩展了 ActivityInstrumentationTestCase2。我想使用需要 FileInputStream 的 poi 读取 xls 文件。
    • 我的代码是 fis = new FileInputStream(path);工作簿 = 新 XSSFWorkbook(fis);所以 context.getResources().getAssets().open 我认为不起作用...请指教...
    • 好友查看编辑并参考此链接,它可能会对您有所帮助:stackoverflow.com/questions/3387478/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多