코딩 관련/Example codes2007. 11. 14. 17:43

동생 선배의 부탁으로 방금 짜보았다.
오랫만에 Java 코딩하려니 30분이나 걸렸다는...... 그중 25분은  URL을 파일명으로 기록하는데 있어 // 이 파일명에 들어가서 발생하는 예외사항을 깜빡해서 ㅎㅎㅎ

import java.net.*;
import java.io.*;

public class pullPages {

 public static void main(String[] args)
 {
  subClass instance = new subClass();

  if (args.length==0) { // 실행 시 인수 있는지 확인하여 없으면 오류 처리
   System.out.println("Usage: java pullPages <your URL>");
   System.out.println("For example, java pullPages http://bart7449.tistory.com");
   System.exit(0);
  }
  else if(args.length==1){  // 접근하고자 하는 URL이 정확히 하나인 경우
   instance.accessByURL(args[0]);

  }else{ //여러 개일 경우 반복하여 처리
   for(int i=0; i<args.length; i++){
    instance.accessByURL(args[i]);  
   }
  }
 
 }
}

class subClass{ //실제 URL에 접근해서 데이터를 가져오는  클래스

 void accessByURL(String s){
  try{
   URL newAccess= new URL(s); 
   URLConnection newCon = newAccess.openConnection();
   BufferedReader in = new BufferedReader(new InputStreamReader(newCon.getInputStream()));
   int charRead;
   File newFile= new File(s.trim().substring(7)); //파일 객체의 생성
   newFile.createNewFile();
   BufferedWriter out = new BufferedWriter(new FileWriter(newFile));

   while((charRead = in.read()) != -1){ //페이지가 종료될때까지 코드표로 한자 씩 읽어서
    out.write(charRead); //파일에 한자씩 기록
   }
   in.close();
   out.close(); // 다 기록 후 입출력 스트림을 닫음
  }catch(Exception e){
   System.out.println("Exceptional case has arisen during this execution");
   //e.printStackTrace();
  }

 }
}


Posted by Bart