1.クライアントコードをダウンロードします
パッケージJavadownload; java.io.bytearrayoutputStreamをインポートします。 java.io.fileをインポートします。 java.io.fileoutputStreamをインポートします。 java.io.inputStreamをインポートします。 java.net.httpurlconnectionをインポートします。 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"; byte [] btimg = getvmfromnetbyurl(url); if(null!= btimg && btimg.length> 0){system.out.println( "read to:" + btimg.length + "byte");文字列filename = "ygserver"; writeimagetodisk(btimg、filename); } else {system.out.println( "この接続から取得したコンテンツはありません"); }}/*** vmをディスクに書き込み* @param VMデータストリーム* @param filename fileの名前を保存するとき*/public static void writeimagetodisk(byte [] vm、string filename){try {file file = new file( "./" + filename); fileoutputStream fops = new fileoutputStream(file); fops.write(vm); fops.flush(); fops.close(); system.out.println( "completeをダウンロード"); } catch(Exception e){e.printstacktrace(); }} / ***アドレスからデータを取得* @param strurlネットワーク接続アドレス* @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 instream = conn.getInputStream(); //入力ストリームByte [] btimg = readInputStream(instream); //取得したバイナリデータはbtimgを返します。 } catch(Exception e){e.printstacktrace(); } nullを返します。 } / ***入力ストリームからデータを取得* @paramインスタム入力ストリーム* @return* @throws例外* / public static byte [] readinputStream(inputstream instream)スロー例外{bytearrayoutputstream outstream = new bytearrayoutputStream(); byte [] buffer = new byte [1024]; int len = 0; while((len = instream.read(buffer))!= -1){outstream.write(buffer、0、len); } instream.close(); returmestream.tobytearray(); }}上記のコードは、小さなファイルのダウンロードにのみ適しています。大きなファイルをダウンロードすると、「メイン」java.lang.outofmemoryerror:javaヒープスペースエラーのスレッドの例外があるため、大きなファイルをダウンロードするときに上記のコードを変更する必要がある場合、コードは次のとおりです。
パッケージJavadownload; java.io.bytearrayoutputStreamをインポートします。 java.io.fileをインポートします。 java.io.fileoutputStreamをインポートします。 java.io.inputStreamをインポートします。 java.net.httpurlconnectionをインポートします。 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/ex = 123”;文字列filename = "yserver"; getvmfromnetbyurl(url、filename); } / ***アドレスに基づいてファイルをダウンロード* @param strurlネットワーク接続アドレス* @param filenameダウンロードファイルのストレージ名* / public static void getvmfromfromnetbyurl(string strurl、string filename){try {url url = new url(strurl); httpurlconnection conn =(httpurlconnection)url.openconnection(); conn.setRequestMethod( "get"); conn.setConnectTimeout(5 * 1000); inputstream instream = conn.getInputStream(); //入力ストリームバイト[]バッファ= new Byte [4096]を介してデータを取得します。 int len = 0; file file = new file( "./" + filename); fileoutputStream fops = new fileoutputStream(file); while((len = instream.read(buffer))!= -1){fops.write(buffer、0、len); } fops.flush(); fops.close(); } catch(Exception e){e.printstacktrace(); }}}2。ファイルクライアントのアップロード:
パッケージJavadownload; java.io.datainputStreamをインポートします。 java.io.dataoutputStreamをインポートします。 java.io.fileをインポートします。 java.io.fileinputStreamをインポートします。 java.io.ioexceptionをインポートします。 java.io.outputStreamをインポートします。 java.net.httpurlconnectionをインポートします。 java.net.urlをインポートします。 public class fileupload { / ** * send request * * @param url *リクエストアドレス * @param filepath *ファイルはサーバーに保存されます(ここでは、テストの便利さのために書かれています。 if(!file.exists()||!file.isfile()){return -1; } / ***パート1* / url urlobj = new url(url); httpurlconnection con =(httpurlconnection)urlobj.openconnection(); / ** *キー値を設定 */ con.setRequestMethod( "post"); //フォームをポストモードで送信します。 con.setDoOutput(true); con.setusecaches(false); //投稿モードはキャッシュを使用できません//リクエストヘッダー情報を設定します。 // Keep-Alive Con.SetRequestProperty( "Charset"、 "utf-8"); //境界文字列境界= "-----------" + system.currenttimemillis()を設定します。 con.setRequestProperty( "content-type"、 "multipart/form-data; boundary =" + boundary); //ボディ情報を要求する//パート1:StringBuilder sb = new StringBuilder(); sb.append( " - "); // ////////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// form-data; name =/"file_name/; filename =/" " + file.getName() +"/"/"/r/n "); sb.append(" content/octet-stream/r/r/n "); sb.append(" conneate:connection:close/r/r/r/n "); sb.tostring( "utf-8") (bytes = in.read(bufferout)!= -1){bufferout、0、bytes)in.// out.close(); con.getInputStream()); void main(string [] args){fileupload up = new fileupload();要約します
上記は、ファイルクライアントをダウンロードし、編集者が紹介したJavaの下でファイルクライアントをアップロードするための例です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!