1. Téléchargez le code client
package javadownload; Importer java.io.ByteArrayOutputStream; Importer java.io.file; Importer java.io.fileOutputStream; import java.io.inputStream; import java.net.httpurlconnection; Importer 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:8845/xx"; octet [] btimg = getvmfromnetByurl (URL); if (null! = btimg && btimg.length> 0) {System.out.println ("lire à:" + btimg.length + "byte"); String filename = "ygserver"; WriteImageTodisk (btimg, nom de fichier); } else {System.out.println ("Aucun contenu obtenu à partir de cette connexion"); }} / ** * Écrivez VM sur disque * @param VM Data Stream * @param nom de nom de fichier du fichier lors de l'enregistrement * / public static void writeImageTodisk (byte [] vm, string filename) {try {file file = new file ("./" + filename); FileOutputStream fops = new FileOutputStream (fichier); fops.write (VM); fops.flush (); fops.close (); System.out.println ("Télécharger complet"); } catch (exception e) {e.printStackTrace (); }} / ** * Obtenez des données à partir de l'adresse * @param Strurl Network Connection Adresse * @return * / public static octet [] getVMFromNetByUrl (String strurl) {try {url url = new URL (strurl); HttpurlConnection conn = (httpurlconnection) url.openconnection (); Conn.SetRequestMethod ("Get"); Conn.SetConnectTimeout (5 * 1000); InputStream insiteam = Conn.getInputStream (); // Obtenez des données via l'octet de flux d'entrée [] btimg = readInputStream (insideam); // les données binaires obtenues renvoie btimg; } catch (exception e) {e.printStackTrace (); } return null; } / ** * Obtenez des données à partir du flux d'entrée * @Param Instream Input Stream * @return * @throws exception * / public static byte [] readInputStream (InputStream insime) lève exception {bytearrayoutputStream ou new ByteArrayOutputStream (); octet [] tampon = nouveau octet [1024]; int len = 0; while ((len = insiteam.read (tampon))! = -1) {outstream.write (tampon, 0, len); } insiteam.close (); return outstream.tobytearray (); }}Le code ci-dessus ne convient que pour télécharger de petits fichiers. Si vous téléchargez un grand fichier, une exception dans le thread "Main" java.lang.outofMemoryError: Java Heap Space Error, donc si vous devez modifier le code ci-dessus lors du téléchargement d'un grand fichier, le code est le suivant:
package javadownload; Importer java.io.ByteArrayOutputStream; Importer java.io.file; Importer java.io.fileOutputStream; import java.io.inputStream; import java.net.httpurlconnection; Importer 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"; String filename = "yserver"; getVMFromnetByUrl (URL, nom de fichier); } / ** * Télécharger le fichier basé sur l'adresse * @param Strurl Network Connection Adresse * @Param Nom de stockage de nom de fichier du fichier de téléchargement * / 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 insiteam = Conn.getInputStream (); // obtenir des données via l'octet de flux d'entrée [] buffer = new byte [4096]; int len = 0; Fichier file = nouveau fichier ("./" + nom de fichier); FileOutputStream fops = new FileOutputStream (fichier); while ((len = insiteam.read (tampon))! = -1) {fops.write (tampon, 0, len); } fops.flush (); fops.close (); } catch (exception e) {e.printStackTrace (); }}}2. Télécharger le client de fichier:
package javadownload; import java.io.datainputStream; import java.io.dataOutputStream; Importer java.io.file; import java.io.fileInputStream; Importer java.io.ioException; import java.io.outputStream; import java.net.httpurlconnection; Importer java.net.url; classe publique FileUpload {/ ** * Send Demande * * @param url * Adresse de demande * @param filepath * Le fichier est enregistré sur le serveur (ici est écrit pour la commodité du test, vous pouvez supprimer ce paramètre) * @return * @throws ioException * / public int Send (String URL, String filepath) throws ioException {file file = new File (filepath); if (! file.exists () ||! file.isfile ()) {return -1; } / ** * Partie 1 * / URL URLOBJ = Nouvelle URL (URL); HttpurlConnection con = (httpurlconnection) urlobj.openconnection (); / ** * Définir la valeur de clé * / con.setRequestMethod ("Post"); // Soumettez le formulaire en mode post, la méthode par défaut Get Con.SetDoInput (true); con.setDoOutput (true); con.seTUsecaches (false); // Le mode post ne peut pas utiliser le cache // définir les informations d'en-tête de demande con.setRequestProperty ("connexion", "close"); // Keep-alive Con.SetRequestProperty ("Charset", "UTF-8"); // Définir la limite limite Boundary = "------------" + System.CurrentTimemillis (); con.setRequestProperty ("contenu-type", "multipart / form-data; boundary =" + limite); // demande des informations corporelles // partie 1: StringBuilder sb = new StringBuilder (); SB.APPEND ("-"); // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// / //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// / ///////////////////////////////////////////////////////////////////////////////////////////////////Content-Disposition: formulaire-data; name = / "file_name /; filename = /" "+ file.getname () +" / "/" / r / n "); sb.append (" contenu-type: application / octet-stream / r / n / r / n "); sb.append (" connexion: close / r / n / n "); SB.TOSTRING (). GetBytes (UTF-8 "); (bytes = in.read (tampon))! = -1) {out.write (tampon, 0, byte);} in.close (); OUT.CLOSE (); Con.getInputStream ()); Static void main (String [] args) lance ioException {fileupload up = new Fileupload ();Résumer
Ce qui précède est l'exemple de code pour télécharger le client de fichier et télécharger le client de fichier sous Java introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!