如何在java中将url html内容转换为字符串

时间:2012-06-18 16:33:00

标签: html url file-io

我有一个存储在服务器上的html文件。我的URL路径如下:<https://localhost:9443/genesis/Receipt/Receipt.html >

我想从网址(即html文件的源代码)中读取这个包含标签的html文件的内容。

我该怎么做?这是一个服务器端代码,不能有浏览器对象,我不确定使用URLConnection是一个不错的选择。

现在最好的解决方案是什么?

5 个答案:

答案 0 :(得分:9)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class URLConetent{
    public static void main(String[] args) {

        URL url;

        try {
            // get URL content

            String a="http://localhost:8080//TestWeb/index.jsp";
            url = new URL(a);
            URLConnection conn = url.openConnection();

            // open the stream and put it into BufferedReader
            BufferedReader br = new BufferedReader(
                               new InputStreamReader(conn.getInputStream()));

            String inputLine;
            while ((inputLine = br.readLine()) != null) {
                    System.out.println(inputLine);
            }
            br.close();

            System.out.println("Done");

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

答案 1 :(得分:2)

使用弹簧解决它 将bean添加到spring配置文件

  <bean id = "receiptTemplate" class="org.springframework.core.io.ClassPathResource">
    <constructor-arg value="/WEB-INF/Receipt/Receipt.html"></constructor-arg>
  </bean>

然后在我的方法中阅读

        // read the file into a resource
        ClassPathResource fileResource =
            (ClassPathResource)context.getApplicationContext().getBean("receiptTemplate");
        BufferedReader br = new BufferedReader(new FileReader(fileResource.getFile()));
        String line;
        StringBuffer sb =
            new StringBuffer();

        // read contents line by line and store in the string
        while ((line =
            br.readLine()) != null) {
            sb.append(line);
        }
        br.close();
        return sb.toString();

答案 2 :(得分:0)

例如:

        URL url = new URL("https://localhost:9443/genesis/Receipt/Receipt.html");
        URLConnection con = url.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String l;
        while ((l=in.readLine())!=null) {
            System.out.println(l);
        }

您可以通过其他方式使用输入流,而不仅仅是打印它。

当然,如果你有本地文件的路径,你也可以

  InputStream in = new FileInputStream(new File(yourPath));

答案 3 :(得分:0)

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

//...

URL url = new URL("https://localhost:9443/genesis/Receipt/Receipt.html");
url.openConnection();
InputStream reader = url.openStream();

答案 4 :(得分:0)

我认为最简单的方法是使用 O(ab)

IOUtils