首页 > 解决方案 > 在 Java 中读取 URL

问题描述

我对这个程序的目标是提取网站的内容并将其输出到控制台。但是,每次运行此代码时都会引发异常。我想知道我做错了什么,是否有人能指出我正确的方向。提前谢谢你!

public class twikiripper {


public static URL url;


    public static void main(String[] args) {
        BufferedReader br = null;

        try{
            URL url = new URL("http://www.google.com");
        }catch(MalformedURLException ex){}
        try {
            url.openConnection();
            br = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;

            StringBuilder sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);



        }catch(Exception e){
            System.out.println("Exception: "+e.toString());
        }
    }

我的代码在上面。我想知道,为什么我总是输出 Exception: java.lang.NullPointerException ?我似乎总是抛出这个异常。我以为我做的一切都是对的。

我要做的是显示网站的输出代码,仅此而已。请帮忙 !

标签: javaurlexception-handlingstream

解决方案


below code will fullfill your requirement --

package com.subham.testing;

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

public class Test13 {

    public static URL url;

    public static void main(String[] args) {
        BufferedReader br = null;

        try {


          url = new URL("http://www.google.com");

        } catch (MalformedURLException ex) {

            System.out.println("came exception");
        }

        try {
            url.openConnection();
            br = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;

            StringBuilder sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);

        } catch (Exception e) {
            System.out.println("Exception: " + e.toString());
        }

    }
}



You were creating new url object  in first try block so in second try block was getting null as it was just decleared but not initialized.

推荐阅读