从Http Server下载文件时报告的可变文件大小

时间:2015-01-05 15:04:34

标签: java download

我正在尝试创建一个从http服务器下载文件的http客户端应用程序。 我有以下问题。

每当我尝试下载并存储文件时,文件的内容都会被截断。 每次我尝试下载和存储文件时,存储文件的大小也不同。我无法找到相同的原因。

示例网址

http://example.com/filename.fileextension

以下是我尝试过的代码段。

    URL url = new URL(uri.toURL().toString());
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestProperty("content-type", "binary/data");
    con.setRequestProperty("Authorization", "Basic " + encoding);
    InputStream ins = con.getInputStream();

    File destination = new File("D:/videos1");
    destination.mkdirs();
    File targetFile = new File(destination.getAbsolutePath()+"/"+"test.xyz");
    OutputStream outStream = new FileOutputStream(targetFile);

方法1:使用Apache IO Utils

    IOUtils.copy(ins, outStream);

方法2:使用缓冲区

    byte[] buffer = new byte[8 * 1024];
    int bytesRead;
    while ((bytesRead = ins.read(buffer)) != -1) {
        outStream.write(buffer, 0, bytesRead);
    }

方法3:使用Files.copy

    Files.copy(ins, targetFile.toPath(),StandardCopyOption.REPLACE_EXISTING);

代码结束

    IOUtils.closeQuietly(ins);
    IOUtils.closeQuietly(outStream);

0 个答案:

没有答案