如何通过Java将HTML存储在另一个文件中

时间:2014-03-13 14:08:02

标签: java html hyperlink

Hey Guys所以我想要做的是出现一个拨号框,输入一个URL,然后一个文件将存储该URL的超链接。

我出现了对话框但不确定如何将其连接到另一个文件并仅保存超链接而不是保存整个HTML文件

import java.io.IOException;
import java.net.URL;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class MyCrawler {

    public static void main(String[] args) throws IOException {
        String name = JOptionPane.showInputDialog("Enter a URL");
        String address = "http://";
        URL pageLocation = new URL(address);
        Scanner in = new Scanner(pageLocation.openStream());
        while (in.hasNext()) {
            String line = in.next();

            if (line.contains("href=\"http://")) {
                int from = line.indexOf("\"");
                int to = line.lastIndexOf("\"");
                System.out.println(line.substring(from + 1, to));
            }
        }
    }
}

我还有另一个单独的文件存储URL oracle的信息,但它将所有HTML信息存储在一个单独的文件中。有谁知道如何将这两个文件组合在一起,只存储文件的超链接?

import java.net.*;
import java.io.*;
import java.util.*;

public class URLReader {

    public static void main(String[] args) throws Exception {
        URL oracle = new URL("http://www.oracle.com/");
        BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream()));
        BufferedWriter writer = new BufferedWriter(new FileWriter("outputfile.txt"));

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            try {
                writer.write(inputLine);
            } catch (IOException e) {
                e.printStackTrace();
                return;
            }
        }
        in.close();
        writer.close();
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将事件处理程序连接到GUI中的文本输入框。请按Swing Trail了解详情。

出于下载和解析HTML的目的,我强烈推荐JSoup,它可以让您访问HTML的各个方面,例如链接,并在它们上执行您自己的应用程序逻辑,例如将它们添加到列表然后将列表写入文件。