2011-08-31 4 views
0

웹 페이지의 소스 코드를 가져 와서 .txt 파일로 저장하는 프로그램이 있습니다. 한 번에 하나씩 끝내면 작동하지만 갑자기 각 페이지 소스가 1/4 ~ 3/4 사이에서 끊어지기 시작하면 (즉, 임의). 왜 또는 어떻게 해결할 것인가에 대한 아이디어가 있습니까?내 프로그램이 웹 페이지 소스에만 포함되는 이유는 무엇입니까?

루프가 자바 (PHP 스크립트에서이 자바를 실행하고 있습니다)가 너무 빠르지 만 초기 조건은 어쨌든 현재 조건이 완료 될 때까지 기술적으로 다음 항목으로 이동해서는 안된다고 생각합니다. . 다음, 그것은 fopenfread 새 파일을 다음 system("java -jar crawl.jar $url $filename");

실행

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

public class selectout { 

public static BufferedReader read(String url) throws Exception{ 
    return new BufferedReader(
     new InputStreamReader(
      new URL(url).openStream()));} 

public static void main (String[] args) throws Exception{ 
    BufferedReader reader = read(args[0]); 
    String line = reader.readLine(); 
    String thenum = args[1]; 
    FileWriter fstream = new FileWriter(thenum+".txt"); 
    BufferedWriter out = new BufferedWriter(fstream); 
    while (line != null) { 

      out.write(line); 
      out.newLine(); 
     //System.out.println(line); 
     line = reader.readLine(); }} 
} 

PHP의 기본적인 mysql_querywhile(fetch_assoc) 잡아 데이터베이스에서 URL입니다 : 여기

내가 사용하고 코드입니다 마지막으로 데이터베이스에 소스를 저장합니다 ( escaping_strings 등 이후).

답변

2

각 파일 작성이 끝나면 출력 스트림을 닫아야합니다. while 루프가 끝나면 out.close();를 호출하십시오. 및 fstream.close();

+0

와우, 나는 그것을 놓쳤다는 것을 믿을 수 없다. 감사! – Calvin

0

스트림을 플러시하고 닫아야합니다.

finally{ //Error handling ignored in my example 
    fstream.flush(); 
    fstream.close(); 
} 
관련 문제