La copia del código es la siguiente:
paquete com.hongyuan.test;
import java.io.file;
import java.io.fileOutputStream;
import java.io.ioException;
import java.io.inputstream;
import java.io.outputstream;
import java.net.httpurlconnection;
import java.net.malFormedUrexception;
import java.net.url;
import java.net.urldecoder;
clase pública Artidownload {
Public static final String local_path = "d:/";
public static void main (string [] args) {
// dirección de archivo para descargar
Cadena fileurl = "http://211.162.55.16/cdn.baidupcs.com/file/6a73dab7c03023a9835cc73 826-250528-130564002 y tiempo = 1397293108 & firma = fdtaxer-dcb740ccc5511e5e8fedcff06b08120 3-mqkoerdtxpyqwwyjki%2bxkjpxn5k%3d & to = cb & fm = n, b, u, nc & newver = 1 & expires = 139 7297563 & rt = sh & r = 8549979042 & logid = 1751715936 & sh = 1 & 1 & 1 & 32555718218 8%8B%E5%BA%8F%E8%AE% Ser%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;
Cadena filename = null;
intentar {
// Inicializar la conexión
URL url = nueva url (fileUrl);
conn = (httpurlconnection) url.openconnection ();
Conn.setDoInput (verdadero);
Conn.setDoOutput (verdadero);
// Obtener el nombre del archivo
String Disposition = Conn.GetheaderField ("Contenido-Dispositivo");
if (Disposition! = Null &&! "". Equals (Disposition)) {
// Obtener el nombre del archivo desde el principio
FileName = disposition.split (";") [1] .split ("=") [1] .replacealll ("/" "," ");
}demás{
// Obtener el nombre del archivo de la dirección
filename = fileurl.substring (fileUrl.lastIndexof ("/")+1);
}
if (FileName! = Null &&! "". Equals (FileName)) {
// decodifica el nombre del archivo
FileName = urlDecoder.Decode (nombre de archivo, "UTF-8");
}demás{
// Si no se puede recuperar el nombre del archivo, se generará una generación aleatoria
filename = "file _"+(int) (math.random ()*10);
}
// Leer datos
if (conn.getResponseCode () == httpurlconnection.http_ok) {
byte [] buffer = new Byte [2048];
in = conn.getInputStream ();
out = new FileOutputStream (nuevo archivo (local_path, nombre de archivo));
int count = 0;
int finalizado = 0;
int size = conn.getContentLength ();
while ((count = in.read (buffer))! =-1) {
if (count! = 0) {
out.write (buffer, 0, recuento);
terminado+= recuento;
System.out.printf ("####################################### ################ ---->%1 $ .2F %%/n ", (doble) terminado/tamaño*100);
}demás{
romper;
}
}
}
} capt (malformedurexception e) {
E.PrintStackTrace ();
} Catch (ioException e) {
E.PrintStackTrace ();
} finalmente{
intentar {
out.close ();
cercar();
Conn.Disconnect ();
} Catch (ioException e) {
E.PrintStackTrace ();
}
}
}
}