2012-11-19 2 views
0

그런 일을하는 데 도움이, 우리는 텍스트 파일을 가지고, 다른 웹 사이트 (각 링크 rasolozhena 새로운 라인에 대한 링크가 많이 있으며 그들은 http://test.com 형태로 작성), 당신은 걸어 갈 필요가 Java 프로그램에서이 사이트의 페이지를 html 형식의 C :// test 폴더에 링크하고 저장합니다.페이지 저장

+0

[무엇을 시도해 봤습니까?] (http://www.whathaveyoutried.com/) –

+0

글쎄, 또는 이것을하는 방법을 설명하는 참고서를 제공합니다. 그러나 코드를 작성해 주시면 매우 감사하게 생각합니다. –

+0

글쎄, 누가 링크를 공유 할 것인가?) –

답변

1

이것은 읽기 전용 코드입니다 질문에 설명 된대로 txt 파일의 URL을 다른 파일에 씁니다.

public static void main(String[] args) { 
    BufferedReader reader = null; 
    try { 
     reader = new BufferedReader(new FileReader(new File("urlList.txt"))); 
     String url = reader.readLine(); 
     int i = 0; 
     while (url != null) { 
      try { 
       getContent(url, i); 
      } catch (IOException io) { 
       System.out.println(io); 
      } 
      i++; 
      url = reader.readLine(); 
     } 

    } catch (IOException io) { 
     System.out.println(io); 
    } finally { 
     if (reader != null) { 
      try { 
       reader.close(); 
      } catch (IOException e) { 
       // nothing 
      } 
     } 
    } 
} 

private static void getContent(String url, int index) 
     throws MalformedURLException, IOException { 
    URL pageUrl; 
    URLConnection conn = null; 

    pageUrl = new URL(url); 
    conn = pageUrl.openConnection(); 

    conn.connect(); 

    InputStreamReader in = new InputStreamReader(conn.getInputStream()); 
    BufferedReader reader = new BufferedReader(in); 
    String htmlFileName = "file_content_" + index + ".txt"; 
    FileWriter fWriter = new FileWriter(htmlFileName); 
    BufferedWriter bWriter = new BufferedWriter(fWriter); 
    String urlData = null; 
    while ((urlData = reader.readLine()) != null) { 
     bWriter.write(urlData); 
     bWriter.newLine(); 
    } 
    bWriter.close(); 
} 
+0

감사합니다.하지만 질문에 흥미가 있습니다. 파일에서 bralav 링크가 자신의 형식으로 모든 페이지를 저장하고 있습니다. –

+0

그래서 @EricScot, 당신은 이것을 문제! – Victor

+0

나는 텍스트 파일의 모든 링크가 필요하고 저장하라는 정보를 얻을 수 있다고 지적했다. 좀 더 상세한 대답을 줄 수있다. 초보자가 매우 명확하지 않다. –

0
public class URLReader 
{ 
     public static void main(String[] args) 
     { 
      try 
        { 
        URL pageUrl; 
        URLConnection conn = null; 

        pageUrl = new URL("https://www.google.ru/"); 
        conn = pageUrl.openConnection(); 

        conn.connect(); 

        InputStreamReader in = new InputStreamReader(conn.getInputStream()); 
        BufferedReader reader = new BufferedReader(in); 
        String htmlFileName = "C:\\hello.html"; 
        FileWriter fWriter = new FileWriter(htmlFileName); 
        BufferedWriter bWriter = new BufferedWriter(fWriter); 
        String urlData = null; 
        while ((urlData = reader.readLine()) != null) 
        { 
          bWriter.write(urlData); 
          bWriter.newLine(); 
        } 
        bWriter.close(); 
       } 
       catch(IOException io) 
       { 
        System.out.println(io); 
       } 
     } 
} 

@Victor는 여기에 내가 질문에 설명 된대로 모든 것을 할 코드를 향상시킬 수, 시작인가? 나는 얼마 전에 비슷한 질문을

+0

내 대답을보세요! – Victor

0

하십시오 Reading website's contents into string

대신 문자열로 그것을 읽는 당신이 어떤 FileOutputStream에 복사 할 수 있습니다. 아파치 코 몬즈 IOUtils에서 그 하나 개의 좋은 기능이있다 : 당신이 너무 귀하의 페이지에 이미지 및 기타 파일을 다운로드하려면

copy(InputStream input, OutputStream output) 
Copy bytes from an InputStream to an OutputStream. 

http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html

, 당신은 더 나은 몇 가지 라이브러리를 사용하는 것입니다.

물론 배우면 직접 구현할 수 있습니다. 정규식은 HTML 파일의 이미지에 대한 링크를 찾는 데 유용 할 수 있습니다.