.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로 뭔가 거기에 도착하는 오류 메시지입니다?
'try' /'catch'를 사용하여 예외를 잡습니다. 그런 다음 예외를 인쇄하십시오 (예 : [printStackTrace()] (http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace())) 예외의 세부 사항은 무엇입니까? –
'System.out'은 기본적으로 버퍼링되므로, 일반적으로 디버깅에 사용하는 것은 좋지 않습니다. 대신에,'System.err'을 사용하거나 더 나은 로거를 얻으려면 – NamshubWriter