我正在尝试创建一个从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);