Java 프로그램에서는 종종 FTP 서버에 파일 업로드 및 다운로드와 같은 FTP를 처리해야합니다. 이 기사에서는 자카르타 커먼즈 (커먼즈 네트 패키지)에서 FTPClient를 사용하여 파일을 업로드하고 다운로드하는 방법을 간략하게 소개합니다.
사용 된 항아리 패키지는 다음과 같습니다.
Commons-Net-1.4.1.jar
자카르타-오로
1. 파일 업로드
파일 업로드 소스 코드/*** 설명 : FTP 서버에 파일을 업로드* @version1.0* @param url ftp server hostname* @param port server port* @param username ftp login 계정* @param password bespport* @param path ftp 서버 save directory* @param filename* @par am @par @pp putpute* @param filename* @param filename 진정한 성공적으로, 그렇지 않으면 거짓 */public static boolean uploadfile (문자열 URL, // ftp 서버 호스트 이름 int port, // ftp 서버 포트 문자열 사용자 이름, // ftp 로그인 계정 문자열 암호, // ftp 로그인 암호 문자열 경로, // ftp 서버는 디렉토리 문자열 파일 이름, // ftp 서버 입력 // input stream input stream에 업로드합니다. ftpclient ftp = 새로운 ftpclient (); {int reply; ftp.connect (URL, 포트); // ftp 서버를 연결 // 기본 포트를 사용하는 경우 ftp.connect (url)로 FTP 서버에 직접 연결할 수 있습니다. ftp.login (사용자 이름, 비밀번호); // login reply = ftp.getReplyCode (); if (! ftpReply.ispositiveCoMpletion (답장)) {ftp.disconnect (); 반환 성공; } ftp.changeworkingDirectory (Path); ftp.storefile (파일 이름, 입력); input.close (); ftp.logout (); 성공 = 참; } catch (ioexception e) {e.printstacktrace (); } 마침내 {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioexception ioe) {}} 반환 성공; } 파일 업로드에 대한 테스트 사례는 다음과 같습니다.
/*** FTP 서버에 로컬 파일을 업로드*/public void testuploadfromdisk () {try {fileInputStream in = new FileInputStream (새 파일 ( "d : /test.txt")); 부울 플래그 = uploadfile ( "127.0.0.1", 21, "관리자", "zyuc2011", "test", "test.txt", in); System.out.println (플래그); } catch (filenotfoundException e) {e.printstacktrace (); }} / ** * ftp 서버에서 파일을 생성하고 파일에 문자열을 작성 * / public void testuploadfromString () {string str = "이것은 쓸 문자열입니다!"; inputStream input = 새로운 BytearRayinputStream (str.getBytes ( "UTF-8")); 부울 플래그 = uploadfile ( "127.0.0.1", 21, "관리자", "zyuc2011", "test", "test.txt", 입력); System.out.println (플래그); } catch (UnsupportedEncodingException e) {e.printstacktrace (); }} 2. 파일 다운로드 <br /> 파일 다운로드 소스 코드
/*** 설명 : ftp 서버* @version1.0* @param url ftp server hostname* @param port ftp server port* @param username ftp login accoun* @param password login password* @param remotepath 상대 경로* @param filename name* @param filename* @param 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬 로컬로 로컬 로컬로 로컬 로컬로 로컬로 로컬로 로컬로 로컬로 로컬로 로컬로 로컬을 저장하십시오. public static boolean downfile (string url, // ftp server hostname int port, // ftp 서버 포트 문자열 username, // ftp 로그인 계정 문자열 암호, // ftp 로그인 암호 문자열 remotepath, // ftp 서버 string filename으로서의 파일 이름으로서의 PATHENTINATION, // 파일 이름으로 구원을받은 후; ftpclient ftp = 새로운 ftpclient (); {int reply; ftp.connect (URL, 포트); // 기본 포트를 사용하는 경우 ftp.connect (url)를 사용하여 FTP 서버에 직접 연결할 수 있습니다. ftp.login (username, password); // login reply = ftp.getReplyCode (); if (! ftpReply.ispositiveCoMpletion (답장)) {ftp.disconnect (); 반환 성공; } ftp.changeworkingDirectory (remotepath); // ftp 서버 디렉토리로 전송 ftpfile [] fs = ftp.listfiles (); for (ftpfile ff : fs) {if (ff.getname (). equals (filename)) {file localfile = 새 파일 (localPath+"/"+ff.getName ()); outputStream은 = 새 파일 아웃 putStream (localfile); ftp.retrievefile (ff.getName (), is); is.close (); }} ftp.logout (); 성공 = 참; } catch (ioexception e) {e.printstacktrace (); } 마침내 {if (ftp.isconnected ()) {try {ftp.disconnect (); } catch (ioexception ioe) {}} 반환 성공; } 파일 다운로드 테스트 사례는 다음과 같습니다.
/** * FTP 서버의 파일을 로컬 * */public void testdownfile () {try {boolean flag = downfile ( "127.0.0.1", "관리자", "zyuc2011", "test", "test", "d :/"); System.out.println (플래그); } catch (예외 e) {e.printstacktrace (); }}위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.