下载文件(一)

来源:互联网 发布:2015美容行业数据 编辑:程序博客网 时间:2024/05/09 09:54


import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;

public class TestFileSize {
 public static void main(String[] args) {
  String nativeFileUrl = "http://baidu/main.zip";
  String fileName = "main.zip";
  
  int fileSize = 0;
  File saveFile;
  try {
   URL url = new URL(nativeFileUrl);
   HttpURLConnection conn = (HttpURLConnection) url.openConnection();
   conn.setConnectTimeout(5*1000);
   conn.setRequestMethod("GET");
   conn.setRequestProperty("Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*");
   conn.setRequestProperty("Accept-Language", "zh-CN");
   conn.setRequestProperty("Referer", nativeFileUrl);
   conn.setRequestProperty("Charset", "UTF-8");
   conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
   conn.setRequestProperty("Connection", "Keep-Alive");
   conn.connect();
   
   if(conn.getResponseCode() == 200){
    fileSize = conn.getContentLength();//根据响应获取文件大小
    if (fileSize <= 0) throw new RuntimeException("Unkown file size ");
    
    saveFile = new File(fileName);//构建保存文件
    InputStream inStream = conn.getInputStream();
    byte[] buffer = new byte[1024];
    int offset = 0;
    RandomAccessFile threadfile = new RandomAccessFile(saveFile, "rwd");
    while((offset = inStream.read(buffer, 0, 1024)) != -1){
     threadfile.write(buffer, 0, offset);
    }
    threadfile.close();
    inStream.close();
    System.out.println(fileName + " down load over");
   }else{
    throw new RuntimeException("don't connection this url");
   }
  } catch (IOException e) {
   throw new RuntimeException("don't connection this url");
  }
 }
}

0 0
原创粉丝点击