当前位置: 首页 > 面试题库 >

文件mkdirs()方法在android / java中不起作用

容磊
2023-03-14
问题内容

我已经为此拉了一段时间了。应该使用以下方法下载文件,并将其保存到硬盘驱动器上指定的位置。

private static void saveImage(Context context, boolean backgroundUpdate, URL url, File file) {

    if (!Tools.checkNetworkState(context, backgroundUpdate))
        return;

    // Get the image
    try {
        // Make the file
        file.getParentFile().mkdirs();

        // Set up the connection
        URLConnection uCon = url.openConnection();
        InputStream is = uCon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);

        // Download the data
        ByteArrayBuffer baf = new ByteArrayBuffer(50);
        int current = 0;
        while ((current = bis.read()) != -1) {
                baf.append((byte) current);
        }

        // Write the bits to the file
        OutputStream os = new FileOutputStream(file);
        os.write(baf.toByteArray());
        os.close();
    } catch (Exception e) {
        // Any exception is probably a newtork faiilure, bail
        return;
    }
}

另外,如果文件不存在,则应该为该文件创建目录。(如果该位置已经有另一个文件,则应该什么都不做)。但是,由于某种原因,mkdirs()方法从不创建目录。我已经尝试了从显式括号到显式制作父文件类的所有内容,似乎没有任何效果。我相当确定该驱动器是可写的,因为只有在确定驱动器之后才能调用该驱动器,在调试过程中对其进行遍历后也是如此。因此该方法失败,因为未创建父目录。谁能告诉我我的通话方式有问题吗?

另外,如果有帮助,这是我在其中调用的文件的来源:

https://github.com/LeifAndersen/NetCatch/blob/master/src/net/leifandersen/mobile/android/netcatch/services/RSSService.java

谢谢


问题答案:

如果您要将内容写入SD卡,希望您已android.permission.WRITE_EXTERNAL_STORAGE在清单中添加了权限



 类似资料:
  • 我正在使用演示APi(http://dummy.restapiexample.com/update) 我有一个响应类UpdateResponse 我有一个Api类和一个APIInterface 和对话框而不是主活动 在APIInterface中使用PUT方法有一个@path(id)和三个@fields(name、salary、age) 下面是UpdateResponse类代码 Api接口代码如下

  • 我在记事本上建立了保存对话框,这是一个问题,因为我有在另一个类中保存文件的方法,当我在公共静态无效主(String[]args)中使用时,它什么也不做

  • 这是我的模块信息: 这是我的父gradle构建文件: 这是我的客户端模块构建文件: 我正在尝试获取FXMLLoader的资源,但我根本无法让它工作。我已经挣扎了两个小时,现在我真的很绝望。我尝试了所有可能的文件名组合,每个可能的位置,但仍然返回null。 我还尝试了,但它也不工作。 有人能帮我吗?我将非常感激。

  • 我想在我的js文件中导入一个函数。下面是一个简单的代码: 谢谢

  • 我使用HttpURLConnection通过POST向服务器发送数据。我设置标头,然后获取输出流并写入一些字节,然后关闭输出流。 我试图从给定的网址获取时间表细节的下一页。但是有些我怎么也得不到结果。请帮助任何人,如果你知道这个代码中的任何问题。 我看到的是有错误的第一页,而不是第二页。"您选择的电台组合无效。请致电LIRR旅游信息中心,电话号码是(718) 217-5477,向客服代表咨询更多信

  • 问题内容: 当我在带有选项create emulator的Jenkins上运行测试时,出现以下问题: [android]无法创建Android模拟器:无法运行AVD创建命令 当我以现有仿真器为目标时,会遇到以下问题: 致命:C:\ Windows \ system32 \ config \ systemprofile.android \ avd \ AVD_2.2.ini(系统找不到指定的路径)j