(1) Sun FtpClient

프로젝트 실천 중 Ftp 전송 문제 에 부 딪 혀 앨범 을 만 듭 니 다.첫 번 째 편 은 sun 이 제공 하 는 FtpClient 를 소개 하 는 것 입 니 다. 이것 도 인터넷 에서 가장 많이 말 한 것 입 니 다. 여기 서 저 는 규칙 만 제시 하고 더 이상 상세 한 설명 을 하지 않 겠 습 니 다.sun 이 제공 하 는 FtpClient 는 암호 화 방식 을 지원 하지 않 고 간단하게 사용 할 수 있 습 니 다.해당 api 를 제공 하지 않 았 기 때문에 디 버 깅 에 불편 을 주 었 습 니 다. sun 은 이 구성 요소 가 api 를 사용 하지 않 아 도 응용 을 완전히 만족 시 킬 수 있 을 정도 로 간단 하 다 고 자신 하기 보 다 는 무책임 하 다 고 말 할 수 있 습 니 다.사실은 개발 과정 에서 여러 가지 문제 가 발생 할 수 있 습 니 다. 실천 과정 에서 파일 을 일정한 수량 급 에 올 린 후에 전송 이 느 려 집 니 다 (느 립 니 다). 그러나 프로그램 은 잘못 보고 하지 않 습 니 다.ftp 클 라 이언 트 데스크 톱 소프트웨어 테스트 를 통 해 1000 개 정도 의 파일 을 연속 으로 전송 하 는 오류 율 이 4 인 것 을 발 견 했 습 니 다. FtpClient 가 개발 할 때 이상 포착 이 전면적 이지 않 을 수 있 습 니 다.그러나 작은 데이터 양 과 암호 화 방식 으로 인증 하고 전송 하지 않 은 상황 에서 FtpClient 는 좋 은 선택 이 라 고 할 수 있 습 니 다.다음은 루틴 입 니 다.
 
자바 코드
  • public class TestFtpClient {   
  •   
  •     /**  
  •      * @param args  
  •      */  
  •     public static void main(String[] args) {   
  •         FtpClient ftpClient;   
  •         // server: FTP 서버 의 IP 주소  
  •         String server = "127.0.0.1";   
  •         // user: FTP 서버 에 로그 인 한 사용자 이름  
  •         String user = "username";   
  •         // password: FTP 서버 에 로그 인 한 사용자 이름 의 암호  
  •         String password = "password";   
  •         // path: FTP 서버 의 경로  
  •         String path = "/path/";   
  •         // 로 컬 파일 업로드 경로  
  •         String filename = "D:" + File.separator + "test.txt";   
  •         // 서버 에 파일 이름 업로드  
  •         String ftpFile = "test.txt";   
  •   
  •         try {   
  •                
  •             ftpClient = new FtpClient(server);   
  •             //ftpClient.openServer(server,21);   
  •             ftpClient.login(user, password);   
  •             System.out.println("Login .......");   
  •                
  •             // path 는 ftp 서비스 에서 홈 디 렉 터 리 의 하위 디 렉 터 리 입 니 다.  
  •             if (path.length() != 0)   
  •                 ftpClient.cd(path);   
  •             // 2 진법 으로 업로드  
  •             ftpClient.binary();   
  •   
  •             TelnetOutputStream os = null;   
  •             FileInputStream is = null;   
  •   
  •             os = ftpClient.put(ftpFile);   
  •             File file_in = new File(filename);   
  •             if (file_in.length() == 0) {   
  •                 throw new Exception ("파일 업로드 가 비어 있 습 니 다!");  
  •             }   
  •             is = new FileInputStream(file_in);   
  •             byte[] bytes = new byte[1024];   
  •             int c;   
  •             while ((c = is.read(bytes)) != -1) {   
  •                 os.write(bytes, 0, c);   
  •             }   
  •   
  •             System. out. println ("파일 업로드 성공!");  
  •             is.close();   
  •             os.close();   
  •         } catch (FileNotFoundException e) {   
  •             e.printStackTrace();   
  •         } catch (IOException e) {   
  •             e.printStackTrace();   
  •         } catch (Exception e) {   
  •             e.printStackTrace();   
  •         }    
  •   
  •     }   
  • }  
  • public class TestFtpClient {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		FtpClient ftpClient;
    		// server:FTP    IP  
    		String server = "127.0.0.1";
    		// user:  FTP       
    		String user = "username";
    		// password:  FTP          
    		String password = "password";
    		// path:FTP       
    		String path = "/path/";
    		//          
    		String filename = "D:" + File.separator + "test.txt";
    		//          
    		String ftpFile = "test.txt";
    
    		try {
    			
    			ftpClient = new FtpClient(server);
    			//ftpClient.openServer(server,21);
    			ftpClient.login(user, password);
    			System.out.println("Login .......");
    			
    			// path ftp          
    			if (path.length() != 0)
    				ftpClient.cd(path);
    			//  2    
    			ftpClient.binary();
    
    			TelnetOutputStream os = null;
    			FileInputStream is = null;
    
    			os = ftpClient.put(ftpFile);
    			File file_in = new File(filename);
    			if (file_in.length() == 0) {
    				throw new Exception("      !");
    			}
    			is = new FileInputStream(file_in);
    			byte[] bytes = new byte[1024];
    			int c;
    			while ((c = is.read(bytes)) != -1) {
    				os.write(bytes, 0, c);
    			}
    
    			System.out.println("      !");
    			is.close();
    			os.close();
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} 
    
    	}
    }

    좋은 웹페이지 즐겨찾기