Javaプログラム開発では、FTPがFTPサーバーへのファイルのアップロードやダウンロードなど、FTPがより頻繁に使用され、頻繁に対処されます。この記事では、Jakarta Commons(Commons-Netパッケージ)でFTPClientを使用してファイルをアップロードおよびダウンロードする方法を紹介します。
1。ファイルをアップロードします
原則は紹介しません。コードを直接読んでください
/** *説明:ファイルをFTPサーバーにアップロード * @バージョン1.0 2008年7月27日4:31:09 PM CUI HONGBAO([email protected])Create * @param url ftp Server * @param Port ftp server Port * @param username * @param patign * @param passhad * @param passhard * @param patign * @param @param filename ftp serverにアップロード* @param入力入力ストリーム* @return return true true、それ以外の場合はfalse*/ publicstaticboolean uploadfile(string url、int port、string username、string password、string path、stram filename、inputstream input){boolean success = false; ftpclient ftp = new ftpclient(); {int Reply; ftp.connect(url、port); // ftpサーバーを接続する//デフォルトのポートを使用している場合、ftp.connect(url)を使用してFTPサーバーに直接接続できます。 ftp.login(username、password); // login Reply = ftp.getReplyCode(); if(!ftpreply.ispositiveCompletion(reply)){ftp.disconnect();成功を返す; } ftp.changeworkingdirectory(path); ftp.storefile(filename、input); input.close(); ftp.logout();成功= true; } catch(ioexception e){e.printstacktrace(); }最後に{if(ftp.isconnected()){try {ftp.disconnect(); } catch(ioexception ioe){}}} return success; } <pre> < /pre> /***説明:FTPサーバーにファイルをアップロード* @バージョン1.0 2008年7月27日4:31:09 PM CUI HONGBAO([email protected])@Param URL FTPサーバーホスト名* @ParamポートFTP @PARGIN ABSURD* PARGIN PASPRIGS* @PARGIN PASTA FTPサーバーSave Directory* @Param FilenameアップロードFTPサーバー* @Param入力ストリーム* @return Return Return True*/それ以外の場合はfalse*/public static boolean uploadfile(string url、int port、string username、string path、string filename、inputstream input){boolean = fals = fals; ftpclient ftpclient()返信; ftp.connect(url、port); // ftpサーバーを接続する//デフォルトのポートを使用する場合、ftp.connect(url); ftp.login(username、password); // login reply = ftp.getReplycode(); if(!ftpreple.isitivecuptupentivecuption); {ftp.disconnect(); return success;} ftp.changeworkingdirectory(path); ftp.storefile(filename、input); input.close(); ftp.logout(); success = true;} catch(ioexception e){e.printstacktrace();}最後に{if(ftp.isconned()){try {ftp.disconnect();} catch(ioExcection IOE){}}}} return success;}
2つの小さな例を書きましょう。
1.ローカルファイルをFTPサーバーにアップロードすると、コードは次のとおりです。
@test publicVoid testuploadfromdisk(){try {fileInputStream in = new fileInputStream(new File( "d:/test.txt")); boolean flag = uploadfile( "127.0.0.1"、21、 "test"、 "test"、 "d:/ftp"、 "test.txt"、in); System.out.println(flag); } catch(filenotfoundexception e){e.printstacktrace(); }}} <pre> </pre> @testpublic void testuploadfromdisk(){try {fileinputStream in = new fileinputStream(new File( "d:/test.txt")); boolean flag = uploadfile( "127.0.0.1"、21、21、 "test"、 "d:/ftp" "" in); system.out.println(flag);} catch(filenotfoundexception e){e.printstacktrace();}} 2。FTPサーバーでファイルを生成し、ファイルに文字列を書き込む
@test publicVoid testuploadfromstring(){try {inputstream input = new bytearrayinputStream( "test ftp" .getBytes( "utf-8")); boolean flag = uploadfile( "127.0.0.1"、21、 "test"、 "test"、 "d:/ftp"、 "test.txt"、input); System.out.println(flag); } catch(unsupportedencodingexception e){e.printstacktrace(); }}} <pre> </pre> @testpublic void testuploadfromstring(){try {inputstream input = new bytearrayinputStream( "test ftp" .getBytes( "utf-8")); boolean flag = uploadfile( "127.0.0.0.0.1"、21、 "" input); system.out.println(flag);} catch(unsupportedencodingexception e){e.printstacktrace();}} 2。ファイルをダウンロードします
FTPサーバーからファイルをダウンロードするためのコードも非常に簡単です。次のように参照してください。
/***説明:FTPサーバー* @versionからファイルをダウンロードします。 7月、:: CUI Hongbao([email protected])Create* @param url ftp server hostname* @param port ftp server port* @param username ftp loginアカウント* @paramパスワードftpログインパスワード* * @return */ publicStaticBoolean downFileをダウンロードした後(String url、int port、string username、string password、string remotepath、string filename、string localpath){boolean success = false; ftpclient ftp = new ftpclient(); {int Reply; ftp.connect(url、port); //デフォルトのポートが使用されている場合、FTP.Connect(URL)を使用してFTPサーバーに直接接続できます。 ftp.login(username、password); // login Reply = ftp.getReplyCode(); if(!ftpreply.ispositiveCompletion(reply)){ftp.disconnect();成功を返す; } ftp.ChangeWorkingDirectory(Remotepath); // FTPサーバーディレクトリに転送ftpfile [] fs = ftp.listfiles(); for(ftpfile ff:fs){if(ff.getname()。equals(filename)){file localfile = new file(localpath+"/"+ff.getName()); outputStream is = new fileoutputStream(localfile); ftp.retrievefile(ff.getname()、is); is.close(); }} ftp.logout();成功= true; } catch(ioexception e){e.printstacktrace(); }最後に{if(ftp.isconnected()){try {ftp.disconnect(); } catch(ioexception ioe){}}} return success; } <pre> </pre>