/**
* 下载远程文件并保存到本地
*
* @param remoteFilePath
* 远程文件路径
* @param localFilePath
* 本地文件路径
*/
public static void downloadFile(String remoteFilePath, String localFilePath) {
URL urlfile = null;
HttpURLConnection httpUrl = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
File f = new File(localFilePath);
try {
urlfile = new URL(remoteFilePath);
httpUrl = (HttpURLConnection) urlfile.openConnection();
httpUrl.connect();
bis = new BufferedInputStream(httpUrl.getInputStream());
bos = new BufferedOutputStream(new FileOutputStream(f));
int len = 2048;
byte[] b = new byte[len];
while ((len = bis.read(b)) != -1) {
bos.write(b, 0, len);
long fileLength = f.length();
if (fileLength < 1024000) {
System.out.println("已下载:" + (f.length() / 1024.0) + "K");
}else if (fileLength >= 1024000 && fileLength < 1024000000) {
System.out.println("已下载:" + (f.length() / 1024 / 1024.0) + "M");
}else if (fileLength >= 1024000000 && fileLength < 1024000000000l) {
System.out.println("已下载:" + (f.length() / 1024 / 1024 / 1024.0) + "G");
}
}
bos.flush();
bis.close();
httpUrl.disconnect();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bis.close();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
网友评论