1. Faça o download do código do cliente
pacote javadownload; importar java.io.byteArrayOutputStream; importar java.io.file; importar java.io.fileOutputStream; importar java.io.inputStream; importar java.net.httpurlConnection; importar java.net.url; /** * @Description Export Machine virtual * @author wxt * @version 1.0 * @since */public classe getvm {/** * teste * @param args */public static void main (string [] args) {string url = "http:/192.168.5.502:888/xx"; byte [] Btimg = getVMFromNetByurl (URL); if (null! = btimg && btimg.length> 0) {System.out.println ("Leia para:" + btimg.length + "byte"); String filename = "ygserver"; writeImageTodisk (Btimg, nome do arquivo); } else {System.out.println ("Nenhum conteúdo obtido desta conexão"); }}/*** Escreva vm para disco* @param vm stream de dados* @param nome do nome do arquivo do arquivo ao salvar*/public static void writeImageTodisk (byte [] vm, string filename) {tente {file file = new File ("./" + filename); FileOutputStream FOPS = new FileOutputStream (File); fops.write (vm); fops.flush (); fops.close (); System.out.println ("Download completo"); } catch (Exceção e) {e.printStackTrace (); }} / *** Obtenha dados do endereço* @Param Strurl Endereço de conexão de rede* @return* / public static byte [] getVMFromNetByurl (String strurl) {try {url url = novo url (strurl); HttpurlConnection Conn = (httpurlConnection) url.openconnection (); Conn.SetRequestMethod ("Get"); Conn.SetConnectTimeout (5 * 1000); InputStream InstrtEam = Conn.getInputStream (); // Obtenha dados através do fluxo de entrada Byte [] Btimg = readInputStream (Instream); // Os dados binários obtidos retornam Btimg; } catch (Exceção e) {e.printStackTrace (); } retornar nulo; } / *** Obtenha dados do fluxo de entrada* @Param Instream Entrada Stream* @return* @Throws Exception* / public static byte [] readInputStream (inputStream Instruam) lança a exceção {bytearrayoutputStream OutStream = newTearTearTutStream (); byte [] buffer = novo byte [1024]; int len = 0; while ((len = Instream.read (buffer))! = -1) {Outream.Write (buffer, 0, len); } unstruam.close (); return fortream.tobytearray (); }}O código acima é adequado apenas para baixar arquivos pequenos. Se você baixar um arquivo grande, uma exceção no thread "Main" java.lang.outOfMemoryError: Java Heap Space Erro; portanto, se você precisar modificar o código acima ao baixar um arquivo grande, o código é o seguinte:
pacote javadownload; importar java.io.byteArrayOutputStream; importar java.io.file; importar java.io.fileOutputStream; importar java.io.inputStream; importar java.net.httpurlConnection; importar java.net.url; /** * @Description Export Machine virtual * @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:808080/111111111111111111111s. String filename = "yserver"; getvmfromNetByurl (URL, nome do arquivo); } / *** Faça o download do arquivo com base no endereço* @Param Strurl Endereço de conexão de rede* @param nome do arquivo de arquivo Nome do arquivo de download* / public static void getvmfromNetByurl (string strurl, string filename) {tente {url url = new url (strurl); HttpurlConnection Conn = (httpurlConnection) url.openconnection (); Conn.SetRequestMethod ("Get"); Conn.SetConnectTimeout (5 * 1000); InputStream InstrtEam = Conn.getInputStream (); // Obtenha dados através do fluxo de entrada Byte [] buffer = novo byte [4096]; int len = 0; Arquivo de arquivo = novo arquivo ("./" + nome do arquivo); FileOutputStream FOPS = new FileOutputStream (File); while ((len = Instream.read (buffer))! = -1) {fops.write (buffer, 0, len); } fops.flush (); fops.close (); } catch (Exceção e) {e.printStackTrace (); }}}2. Carregue o cliente do arquivo:
pacote javadownload; importar java.io.datainputStream; importar java.io.dataOutputStream; importar java.io.file; importar java.io.fileInputStream; importar java.io.ioException; importar java.io.OutputStream; importar java.net.httpurlConnection; importar java.net.url; classe pública FileUpload { / ** * Enviar solicitação * * @param url * endereço de solicitação * @param filepath * O arquivo é salvo no servidor (aqui está escrito para a conveniência dos testes, você pode remover este parâmetro) * @return * @throws ioexception * / public int (string url, filePath); if (! file.exists () ||! file.isfile ()) {return -1; } / *** parte 1* / url urlobj = novo url (url); HttpurlConnection con = (httpurlConnection) urlobj.openconnection (); / ** * Defina o valor da chave */ con.setRequestMethod ("post"); // Envie o formulário no modo de postagem, padrão GET Method Con.SetDoinput (true); Con.SetdoOutput (true); con.setuseCaches (false); // O modo de postagem não pode usar o cache // Definir informações do cabeçalho da solicitação Con.SetRequestProperty ("Connection", "Close"); // Keep-alive Con.SetRequestProperty ("charset", "UTF-8"); // Definir limite de string limite = "----------" + System.CurrentTimemillis (); Con.SetRequestProperty ("Content-Type", "Multipart/Form-Data; limite =" + limite); // solicitar informações do corpo // Parte 1: StringBuilder sb = new StringBuilder (); sb.append ("-"); // /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////Ticis ///////////////////////////////////////////////////////////////Osipos formulário-dados; nome =/"file_name/; filename =/" "" File.getName () + "/"/"/r/n"); sb.append ("content-type: Application/Octet-stream/r/n/r/n"); sb.apend ("conexão: close/r/r/r/n"; SB.ToString (). GetBytes ("UTF-8"); (bytes = in.read (bufferout)! = -1) {out.write (bufferout, 0, bytes); out.close (); // String Line = NULL; lança ioexception {fileupload up = new FileUpload ();Resumir
O exposto acima é o código de exemplo para baixar o cliente do arquivo e fazer upload do cliente de arquivo no Java introduzido pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!