1. Descargue el código del cliente
paquete Javadownload; import java.io.bytearrayOutputStream; import java.io.file; import java.io.fileOutputStream; import java.io.inputstream; import java.net.httpurlconnection; import java.net.url; /** * @Description Export Virtual Machine * @author wxt * @version 1.0 * @since */public class getVm {/** * test * @param args */public static void main (string [] args) {string url = "http://192.168.5.102:8445/xx"; byte [] btimg = getVmFromNetByUrl (url); if (null! = btimg && btimg.length> 0) {system.out.println ("leer a:" + btimg.length + "byte"); Cadena filename = "ygserver"; WriteMageTodisk (btimg, nombre de archivo); } else {System.out.println ("No se obtiene contenido de esta conexión"); }}/*** Escribe VM en el disco* @param vm data stream* @param nombre de nombre de archivo del archivo al guardar*/public static void writeMageTodisk (byte [] vm, string filename) {try {archivo file = nuevo archivo ("./" + nombre de archivo); FileOutputStream fops = new FileOutputStream (archivo); fops.write (VM); fops.flush (); fops.close (); System.out.println ("Descargar completo"); } catch (Exception e) {E.PrintStackTrace (); }} / *** Obtenga datos de la dirección* @param Strurl Dirección de conexión de red* @return* / public static byte [] getVmFromNetByUrl (String Strurl) {try {url url = new url (strurl); Httpurlconnection conn = (httpurlconnection) url.openconnection (); Conn.setRequestMethod ("Get"); Conn.SetConnectTimeOut (5 * 1000); InputStream IntileM = Conn.getInputStream (); // Obtener datos a través de la transmisión de entrada byte [] btimg = readInputStream (InSteam); // Los datos binarios obtenidos devuelven bimgg; } catch (Exception e) {E.PrintStackTrace (); } return null; } / *** Obtenga datos de la transmisión de entrada* @param Instream Input Stream* @return* @throws Exception* / public static byte [] readInputStream (InputStream InSteam) lanza la excepción {byteArArAyOutStream OutStream = new ByTearRaUutputPutPutput (); byte [] buffer = new Byte [1024]; int len = 0; while ((len = instramp.read (buffer))! = -1) {outstream.write (buffer, 0, len); } IntileM.Close (); return outstream.tobytearray (); }}El código anterior solo es adecuado para descargar archivos pequeños. Si descarga un archivo grande, una excepción en el hilo "principal" java.lang.outofMemoryError: Java Heap Space Error, por lo que si necesita modificar el código anterior al descargar un archivo grande, el código es el siguiente:
paquete Javadownload; import java.io.bytearrayOutputStream; import java.io.file; import java.io.fileOutputStream; import java.io.inputstream; import java.net.httpurlconnection; import java.net.url; /** * @Description Export Virtual Machine * @author wxt * @version 1.0 * @since */public class getBigFile {/** * test * @param args */public static void main (string [] args) {String url = "http://192.168.5.76:8080/export?uid=123"; Cadena filename = "yserver"; getVMFromNetByUrl (URL, nombre de archivo); } / *** Descargar archivo basado en la dirección* @param Strurl Dirección de conexión de red* @param nombre de almacenamiento de nombre de archivo del archivo de descarga* / public static void getVmFromnetByUrl (String Strurl, String FileName) {try {url url = new url (strurl); Httpurlconnection conn = (httpurlconnection) url.openconnection (); Conn.setRequestMethod ("Get"); Conn.SetConnectTimeOut (5 * 1000); InputStream InSteam = conn.getInputStream (); // Obtener datos a través de la transmisión de entrada byte [] buffer = new Byte [4096]; int len = 0; Archivo archivo = nuevo archivo ("./" + nombre de archivo); FileOutputStream fops = new FileOutputStream (archivo); while ((len = instramp.read (buffer))! = -1) {fops.write (buffer, 0, len); } fops.flush (); fops.close (); } catch (Exception e) {E.PrintStackTrace (); }}}2. Cargar el cliente del archivo:
paquete Javadownload; import java.io.datainputstream; import java.io.dataOutputStream; import java.io.file; import java.io.fileInputStream; import java.io.ioException; import java.io.outputstream; import java.net.httpurlconnection; import java.net.url; public class FileUpload { / ** * Enviar solicitud * * @param URL * Dirección de solicitud * @param filepath * El archivo se guarda en el servidor (aquí está escrito para la conveniencia de las pruebas, puede eliminar este parámetro) * @return * @throws ioException * / public int send (string, string filepath) lanza ioexception {archivo archivo = nuevo archivo (nuevo (nuevo archivo (nuevo (nuevo archivo (nuevo archivo (nuevo archivo (nuevo archivo);;; if (! file.exists () ||! file.isfile ()) {return -1; } / *** Parte 1* / url urlobj = nueva url (url); Httpurlconnection con = (httpurlconnection) urlobj.openconnection (); / ** * establecer el valor de clave */ con.setRequestMethod ("post"); // Enviar el formulario en modo POST, el método de obtención predeterminado con.setDoInput (true); con.setDoOutput (verdadero); con.setUsecaches (falso); // El modo de publicación no puede usar caché // establecer la información del encabezado de solicitud Con.setRequestProperty ("conexión", "cerrar"); // Keep-Alive Con.setRequestProperty ("Charset", "UTF-8"); // Establecer una cadena de límite límite = "------------" + System.CurrentTimemillis (); con.setRequestProperty ("Content-type", "multipart/form-data; boundary =" + boundary); // Solicitar información del cuerpo // Parte 1: StringBuilder sb = new StringBuilder (); sb.append ("-"); // ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////Content-Disposition: formy-data; name =/"file_name/; filename =/" " + file.getName () +"/"/"/r/n "); sb.append (" content-type: aplicación/octet-stream/r/n/r/n "); sb.append (" conexión: cerrar/r/n/r/r/n "); byte [] head = SB.ToString (). GetBytes ("UTF-8"); ((bytes = in.read (bufferout))! = -1) {out.write (bufferout, 0, bytes); out.close (); String Line = Null ;/ While ((Line = Reader.Readline ())! = NULL) {// System.out.println (línea); IOException {FileUpload up = new FileUpload ();Resumir
El anterior es el código de ejemplo para descargar el cliente de archivo y cargar el cliente de archivo en Java introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!