0

そのようなものを作るのを手伝ってください、私たちはテキストファイルを持っています、異なるウェブサイトへのたくさんのリンクがあります(それぞれのリンクrasolozhenaは新しい行であり、それらはhttp://test.comの形式で書かれています)、あなたは歩く必要がありますJavaプログラムで、これらのサイトのページをすべてリンクしてフォルダC:/ / testにhtml形式で保存し、これらのページの名前がタグと同じであることを確認します。

4

3 に答える 3

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();
}
于 2012-11-19T13:15:54.393 に答える
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これが始まりです、あなたはコードを改善することができます、私が質問で説明したようにすべてがありますか?お願いします

于 2012-11-19T14:29:15.793 に答える
0

私は少し前に同様の質問をしました:ウェブサイトのコンテンツを文字列に読みます

文字列に読み込む代わりに、いくつかにコピーすることができますFileOutputStream。Apache Commonsには、そのための優れた関数が1つあります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ファイル内の画像へのリンクを見つけるのに役立ちます。

于 2012-11-19T14:34:37.667 に答える