동생 선배의 부탁으로 방금 짜보았다.
오랫만에 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();
}
}
}
'코딩 관련 > Example codes' 카테고리의 다른 글
Xerces C에서 스키마 참조 없는 XML 문서에 대해 스키마 주고 validation 수행 (0) | 2007.12.11 |
---|