|
|
|
|
|
반응형
FTPSClient 는 sftp접속을 할 수 없다는... 그래서 jsch라이브러리 이용.
jsch-0.1.49.jar 파일은 첨부함.
@Controller public class Test{ @RequestMapping(value="/test", method=RequestMethod.GET) public void test(HttpServletRequest request, HttpServletResponse response) throws Exception { connect();//아래의 메소드 실행 } @SuppressWarnings("unchecked") private void connect() throws Exception { Session session = null; //com.jcraft.jsch.Session 참조함 // 1. JSch 객체를 생성한다. JSch jsch = new JSch(); // 2. 세션 객체를 생성한다 (사용자 이름, 접속할 호스트, 포트를 인자로 준다.) // session = jsch.getSession(username, host, port); session = jsch.getSession("유저", "아이피", 포트); // 3. 패스워드를 설정한다. session.setPassword("test"); // 4. 세션과 관련된 정보를 설정한다. java.util.Properties config = new java.util.Properties(); // 4-1. 호스트 정보를 검사하지 않는다. config.put("StrictHostKeyChecking", "no"); session.setConfig(config); try{ //5. 접속한다. session.connect(); // 6. sftp 채널을 연다. Channel channel = session.openChannel("sftp"); ChannelSftp channelSftp = (ChannelSftp) channel; channelSftp.connect(); StringBuffer sb = new StringBuffer(); String ftpDir = "/test/info/"; //디렉토리 접근 channelSftp.cd(ftpDir); //디렉토리 안의 목록 조회 Vectorflist = channelSftp.ls(ftpDir); for(ChannelSftp.LsEntry entry : flist){ if(!entry.getFilename().equals(".") && !entry.getFilename().equals("..") && entry.getFilename().indexOf(".") != 0){ log.info("파일명 :"+entry.getFilename()); //버퍼로 읽기 BufferedReader reader = new BufferedReader(new InputStreamReader(channelSftp.get(entry.getFilename()))); /* 버퍼로 읽은 파일의 내용 ex, [{"id":"test","client_ip":"127.0.0.1"}] [{"id":"test","client_ip":"127.0.0.1"}] [{"id":"test","client_ip":"127.0.0.1"}] */ String readStr = ""; //한줄씩 읽으면서 json파서로 담는다 while((readStr = reader.readLine()) != null) { log.info("################# readStr:"+readStr); Gson gson = new Gson(); JsonParser parser=new JsonParser(); JsonArray jsonArray = (JsonArray)parser.parse (readStr); //json 객체를 구글json인 gson을 이용하여 내가 원하는 VO객체에 자동으로 담는다. 이게 대봑임 ㅋㅋ. VO객체에는 변수들이 getter, setter로 선언되어 있음. for (int i = 0; i < jsonArray.size(); i ++){ FtpData fdVO = (FtpData) gson.fromJson(jsonArray.get(i), FtpData.class); log.info("################# fdVO:"+fdVO.toString()); } } reader.close();//버퍼 종료 } } channelSftp.disconnect();//ftp종료 }catch(SftpException e){ e.printStackTrace(); } } }
반응형
'Programming > Java' 카테고리의 다른 글
SimpleCaptcha 를 이용한 자동가입방지 문자 생성하기 - JDK1.6(JAVA6) 기반 (0) | 2016.07.07 |
---|---|
JAVA 한글 인코딩 파일 입출력 - UTF-8 방식과 MS949, EUC-KR (0) | 2015.12.21 |
엑셀 업로드후 DB에 저장이 끝난 후 파일 삭제 (0) | 2015.12.21 |
excel 업로드 java에서 읽기, 엑셀 파일 db로 등록 (0) | 2015.12.21 |
문자열 포함여부 확인(검색)방법 - contains, indexOf, matches (0) | 2015.12.16 |
|
|
|
|
|