La copie de code est la suivante:
Package com.hongyuan.test;
Importer java.io.file;
Importer java.io.fileOutputStream;
Importer java.io.ioException;
import java.io.inputStream;
import java.io.outputStream;
import java.net.httpurlconnection;
Importer java.net.malformedUrlexception;
Importer java.net.url;
import java.net.urldecoder;
classe publique Filedownload {
public static final string local_path = "d: /";
public static void main (String [] args) {
// Adresse de fichier à télécharger
Chaîne fileurl = "http://211.162.55.16/cdn.baipcs.com/file/6a73dab7c03023a9835cc737 26-250528-130564002 & Time = 1397293108 & Sign = fdtaxer-dcb740ccc5511e5e8fedcff06b08120 3-MQKOERDTXPYQWWYJKI% 2BXKJPXN5K% 3D & TO = CB & FM = N, B, U, NC & NEWVER = 1 & Expires = 139 7297563 & RT = SH & R = 854979042 & LOGID = 1751715936 & SH = 1 & VUK = 355571820 A8% 8B% E5% BA% 8F% E8% AE% Être% E8% AE% A1% 20% E7% AC% AC5% E7% 89% 88.pdf & wshc_tag = 0 & wsiphost = ipdbm ";
InputStream dans = null;
OutputStream out = null;
Httpurlconnection conn = null;
String filename = null;
essayer {
// initialise la connexion
Url url = new URL (fileurl);
Conn = (httpurlConnection) url.openconnection ();
Conn.SetDoInput (true);
Conn.SetDoOutput (true);
// Obtenez le nom du fichier
String Disposition = Conn.geTheaderField ("Content-Disposition");
if (disposition! = null &&! "". égal (disposition)) {
// Obtenez le nom du fichier depuis le début
filename = disposition.split (";") [1] .split ("=") [1] .replaceAll ("/" "," ");
}autre{
// Obtenez le nom du fichier de l'adresse
filename = fileUrl.substring (fileUrl.lastIndexof ("/") + 1);
}
if (filename! = null &&! "". equals (nom de fichier)) {
// décode le nom du fichier
FileName = urlDecOder.decode (FileName, "UTF-8");
}autre{
// Si le nom du fichier ne peut pas être récupéré, une génération aléatoire sera générée
filename = "file _" + (int) (math.random () * 10);
}
// Lire les données
if (conn.getResponSECODE () == httpurlconnection.http_ok) {
octet [] tampon = nouveau octet [2048];
in = conn.getInputStream ();
out = new FileOutputStream (nouveau fichier (local_path, nom de fichier));
int count = 0;
int fin fini = 0;
int size = conn.getContentLength ();
while ((count = in.read (tampon))! = - 1) {
if (count! = 0) {
out.write (tampon, 0, comte);
fini + = count;
System.out.printf ("############################################ ################## –- ->% 1 $ .2f %% / n ", (double) fini / taille * 100);
}autre{
casser;
}
}
}
} catch (malformedUrlexception e) {
e.printStackTrace ();
} catch (ioexception e) {
e.printStackTrace ();
} enfin{
essayer {
out.close ();
joindre();
Conn.Disconnect ();
} catch (ioexception e) {
e.printStackTrace ();
}
}
}
}