2015-01-19 1 views
0

.edu 도메인을 통해 크롤링하는 웹 크롤러를 만들고 있습니다. 현재, 내 프로그램은 많은 .edu 및 다른 매개 변수의 URL을 포함하는 시드 파일을 명령 줄에서 읽습니다. 파일에서 각 URL을 읽은 다음 페이지의 내용을 다운로드하는 다른 기능으로 URL을 전달합니다. 하나의 URL을 전달하면 모든 것이 정상적으로 작동합니다. 그러나 여러 파일을 보낼 때 URL 내용의 입력 스트림을 열면 프로그램이 멈추게됩니다.BufferedReader 관련 문제

두 매개 변수는 seed.txt를 열고 url을 한 줄씩 읽은 다음 downloadFile을 호출하는 내 함수 (readFromSeedFile)에서옵니다.

public static void downloadFile(String seed, int i) throws IOException, MalformedURLException{ 

    System.out.println("In downloadFile"); 
    URL urlObj = new URL(seed); 
    System.out.println("1"); 
    BufferedReader x = new BufferedReader(new InputStreamReader(urlObj.openConnection().getInputStream())); 
    System.out.println("2"); 
    String fileName = "file" + i + ".html"; 
    System.out.println("3"); 
    BufferedWriter fos = new BufferedWriter(new FileWriter(fileName)); 
    System.out.println("4"); 
    while(x.ready()){ 
     System.out.println("while loop of downloadFile"); 
     String line = x.readLine(); 
     fos.write(line); 
     fos.write("\n"); 
    } 
    x.close(); 
    fos.close(); 

    } 

ReadFromSeedFile에있는 IO 예외가 발생합니다. 이것은 내가

S$ javac WebCrawler.java 
S$ java WebCrawler seed.txt 3 4 out.txt 
while loop of readSeedFile 
http://cs.ucr.edu/ 
In downloadFile 
1 
Exception occurred trying to read 'seed.txt'. 

내가 이해하고 있지 않다 BufferedReader로 뭔가 거기에 도착하는 오류 메시지입니다?

+5

'try' /'catch'를 사용하여 예외를 잡습니다. 그런 다음 예외를 인쇄하십시오 (예 : [printStackTrace()] (http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace())) 예외의 세부 사항은 무엇입니까? –

+0

'System.out'은 기본적으로 버퍼링되므로, 일반적으로 디버깅에 사용하는 것은 좋지 않습니다. 대신에,'System.err'을 사용하거나 더 나은 로거를 얻으려면 – NamshubWriter

답변

0

아마도 내가 틀렸을 수도 있지만 링크 http://cs.ucr.edu/에 연결할 수 없습니다! 이것은 가능한 오류이므로 타이머를 사용해야합니다.

+0

맞습니다. 감사. – Ria