有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

向java添加对话框并检索html文件

这是我的代码

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

public class Html {
public static void main(String[] args) throws IOException {


String name = JOptionPane.showInputDialog("Enter a URL");
String address = "http://";

URL chula = new URL(address+name);
URLConnection yc = chula.openConnection();
//BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
Scanner in = new Scanner(new InputStreamReader(yc.getInputStream()));

PrintWriter output = new PrintWriter("newFile.txt");
while (in.hasNext()) {
String inputLine = in.nextLine();
output.println(inputLine);


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));



        }
       in.close();
         output.close();
         }

           }}

我想做的是“用户在对话框中键入一个URL。我们必须使用的URL是“http://www.cs.ucc.ie/~adrian/CS5015refs.html”。然后我想让程序将该URL的HTML内容保存到指定的文件中,但不是所有的HTML代码。只是网页中的链接。基本上是“a href”部分

这更有意义吗?目前,当我在对话框中输入URl时,它甚至不会保存出现错误的任何内容


共 (1) 个答案

  1. # 1 楼答案

    好的,那么你想要的是:

    String name = JOptionPane.showInputDialog("Enter a URL");
    String address = "http://";
    
    URL chula = new URL(address+name);
    URLConnection yc = chula.openConnection();
    //BufferedReader in = new BufferedReader(new InputStreamReader(yc
      //      .getInputStream()));
    Scanner in = new Scanner(new InputStreamReader(yc.getInputStream()));
    
    PrintWriter output = new PrintWriter("newFile.txt");
    while (in.hasNext()) {
        String inputLine = in.nextLine();
        output.println(inputLine);
    }
    in.close();
    output.close();
    

    编辑: 我不明白你想做什么

    是否要将使用的URL类型保存到“新建文件”中。txt文件

    如果是,您不需要URLConnection或Scanner,您应该打开文件并附加地址+名称:

    PrintWriter out = new PrintWriter(
    new BufferedWriter(new FileWriter("myfile.txt", true))
    );
    out.println (address+name);
    out.close;
    

    编辑2:好的,这是您需要的:

            Scanner in = new Scanner(new InputStreamReader(yc.getInputStream())).useDelimiter("\n");
    
        PrintWriter output = new PrintWriter(new File("allLinks.txt"));
        while (in.hasNext()) {
            String inputLine = in.nextLine();
    
            String line = in.next();
            if (line.contains("href")) {
                int from = line.indexOf("href=");
    
                int to = line.substring(from).indexOf(">");
    
                String link = line.substring(from+6, to-1);
    
                System.out.println(link);
                output.println(link);
            }
    
        }
       in.close();
       output.close();
    

    首先,您需要告诉Scanner要使用的分隔符(行尾),默认情况下它使用空格

    您必须为PrintWriter使用一个文件

    您必须搜索“href”和下一个“>;”在“href”之后获取干净的链接