使用Android Assets zip文件时,FileNotFound异常

时间:2020-04-14 05:54:54

标签: java android kotlin inputstream

我正尝试使用以下方法访问存储在资产文件夹中的zip文件:

val filePath = Uri.parse("file:///android_asset/testfile_v1.1.1.zip").toString()

但是,即使我确定文件存在并且我也不知道为什么,我仍然遇到FileNotFound错误。

任何建议都值得赞赏。

错误:

java.io.FileNotFoundException: file:/android_asset/testfile_v1.1.1.zip (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:200)
        at java.io.FileInputStream.<init>(FileInputStream.java:150)
        at java.io.FileInputStream.<init>(FileInputStream.java:103)

用例:

private InputStream openInputStream(final String filePath, final String mimeType, final int mbrSize, final int types) throws IOException {
    final InputStream is = new FileInputStream(filePath);
    if (MIME_TYPE_ZIP.equals(mimeType))
        return new ArchiveInputStream(is, mbrSize, types);
    if (filePath.toLowerCase(Locale.US).endsWith("hex"))
        return new HexInputStream(is, mbrSize);
    return is;
}

1 个答案:

答案 0 :(得分:0)

如果路径/android_asset/testfile_v1.1.1.zip确实正确,则可能是因为您在输入的未转义路径中错过了一个斜线,即file:///而不是file:////