コードコピーは次のとおりです。
パッケージcom.hongyuan.test;
java.io.fileをインポートします。
java.io.fileoutputStreamをインポートします。
java.io.ioexceptionをインポートします。
java.io.inputStreamをインポートします。
java.io.outputStreamをインポートします。
java.net.httpurlconnectionをインポートします。
java.net.malformedurlexceptionをインポートします。
java.net.urlをインポートします。
java.net.urldeCoderをインポートします。
パブリッククラスFileDedOwnLoad {
public static final string local_path = "d:/";
public static void main(string [] args){
//ダウンロードするファイルアドレス
弦fileurl = "http://211.162.55.16/cdn.baidupcs.com/file/6a73dab7c03023a9835cc737f4447674d?xcode=af6ffdc43a44169bac968442c422008440084512c92c968452c42200842c984512 71826-250528-130564002&TIME = 1397293108&SIGN = FDTAXER-DCB740CCC551E5E8FEDCFF06B08120 3-MQKOERDTXPYQWWYJKI%2BXKJPXN5K%3D&TO = CB&FM = N、B、U、NC&NEWVER = 1&UPIRES = 1397297563&RT = SH&R = 854979042&LOGID = 1751715936&SH = 1&SH = 1&fif = 1 A8%8B%E5%BA%8F%E8%AE% Be%E8%AE%A1%20%E7%AC%AC5%E7%89%88.PDF&WSHC_TAG = 0&WSIPHOST = IPDBM ";
inputstream in = null;
outputStream out = null;
httpurlconnection conn = null;
文字列filename = null;
試す {
//接続を初期化します
url url = new url(fileurl);
conn =(httpurlconnection)url.openconnection();
conn.setDoinput(true);
conn.setDoOutput(true);
//ファイル名を取得します
string dision = conn.getheaderfield( "content-disposition");
if(dision!= null &&! ""。equals(dision)){
//最初からファイル名を取得します
fileName = dision.split( ";")[1] .split( "=")[1] .ReplaceAll( "/" "、" ");
}それ以外{
//アドレスからファイル名を取得します
filename = fileurl.substring(fileurl.lastindexof( "/")+1);
}
if(filename!= null &&! ""。equals(filename)){
//ファイル名をデコードします
filename = urldecoder.decode(filename、 "utf-8");
}それ以外{
//ファイル名を取得できない場合、ランダム生成が生成されます
filename = "file _"+(int)(math.random()*10);
}
//データを読み取ります
if(conn.getResponseCode()== httpurlconnection.http_ok){
byte [] buffer = new byte [2048];
in = conn.getInputStream();
out = new fileoutputStream(new file(local_path、filename));
int count = 0;
int finisht = 0;
int size = conn.getContentLength();
while((count = in.read(buffer))!= -1){
if(count!= 0){
out.write(buffer、0、count);
終了+= count;
System.out.printf( "######################################################################### ################----->%1 $ .2F %%/n "、(double)finisht/size*100);
}それ以外{
壊す;
}
}
}
} catch(malformedurlexception e){
e.printstacktrace();
} catch(ioException e){
e.printstacktrace();
} ついに{
試す {
out.close();
in.close();
conn.disconnect();
} catch(ioException e){
e.printstacktrace();
}
}
}
}