Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中下载文件_Android_Httprequest - Fatal编程技术网

如何在Android中下载文件

如何在Android中下载文件,android,httprequest,Android,Httprequest,我所拥有的: 我已经上传了一个.json文件到我帐户的Dropbox中 公之于众 我想做什么: 我想将该文件下载到我的android项目的原始文件夹 我熟悉AsyncTask和HttpClient但是什么呢 下载文件应遵循的方法(步骤) 我尝试在stackoverflow中搜索类似的问题,但找不到,因此我自己发布了一个问题您无法将文件下载到“资产”或“/res/raw”中。这些将被编译到您的APK中 您可以将文件下载到应用程序的内部数据目录。看 有很多示例和库可以帮助您下载。以下是您可以在项目中

我所拥有的:

  • 我已经上传了一个.json文件到我帐户的Dropbox中 公之于众
  • 我想做什么:

  • 我想将该文件下载到我的android项目的
    原始文件夹

  • 我熟悉
    AsyncTask
    HttpClient
    但是什么呢 下载文件应遵循的方法(步骤)


  • 我尝试在stackoverflow中搜索类似的问题,但找不到,因此我自己发布了一个问题

    您无法将文件下载到“资产”或“/res/raw”中。这些将被编译到您的APK中

    您可以将文件下载到应用程序的内部数据目录。看

    有很多示例和库可以帮助您下载。以下是您可以在项目中使用的静态工厂方法:

    public static void download(String url, File file) throws MalformedURLException, IOException {
        URLConnection ucon = new URL(url).openConnection();
        HttpURLConnection httpConnection = (HttpURLConnection) ucon;
        int responseCode = httpConnection.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_OK) {
            BufferedInputStream bis = new BufferedInputStream(ucon.getInputStream());
            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while ((current = bis.read()) != -1) {
                baf.append((byte) current);
            }
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(baf.toByteArray());
            fos.close();
            bis.close();
        }
    }
    
    然后,要从Dropbox下载文件:

    String url = "https://dl.dropboxusercontent.com/u/27262221/test.txt";
    File file = new File(getFilesDir(), "test.txt");
    try {
        download(url, file);
    } catch (MalformedURLException e) {
        // TODO handle error
    } catch (IOException e) {
        // TODO handle error
    }
    
    请注意,上面的代码应该从后台线程运行,否则您将得到一个错误消息

    您还需要在AndroidManifest中声明以下权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

    您的“
    原始文件夹”
    ”是什么意思?您想下载一个文件,然后将其放入APK中吗?只需将其下载到您的应用程序文件目录。@JaredRummler。。。。。。。原始文件夹是我在项目中创建的文件夹,例如。。。。。。它也可以是资产文件夹。。。我只想知道从dropbox下载的过程:)谢谢你的解释。。。。。。。。还有一个问题。。。。。我们可以在不使用dropbox?的登录凭据的情况下执行上述过程。。。。只要我有位置链接…就足够了吗?你不需要登录下载DropBox上的公共文件。不过,我还没有在生产构建中使用它(不确定DropBox是否会影响流量)。如果您没有服务器,我建议您在Github上托管JSON文件。谢谢:)。。。。是的,我没有服务器。。。。。。如果我在github上托管它。。。。。。。流程是否与您上面描述的相同。。。。(仅就我所知)是的,只需使用“原始”链接。
    HttpRequest.get("https://dl.dropboxusercontent.com/u/27262221/test.txt").receive(
        new File(getFilesDir(), "test.txt"));