Java 如果url页面为空,则返回另一个字符串

Java 如果url页面为空,则返回另一个字符串,java,Java,如果我试图阅读空白网页,我将如何返回默认字符串 private void setVersion(String input) { try { URL url = new URL(input); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String getInfo;

如果我试图阅读空白网页,我将如何返回默认字符串

private void setVersion(String input) {
        try {
            URL url = new URL(input);
            BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

            String getInfo;
            while ((getInfo = in.readLine()) != null) {
                Console("[setVersion Length]" + getInfo.length());
                dModVersionList.addElement(getInfo);
            }

        } catch (Exception e) {
            dModVersionList.addElement("Unknown");
            e.printStackTrace();
        }
    }

我想添加元素,即使while循环返回null,如果页面不再存在,我也可以处理它

        String getInfo;
        // set initially to false
        boolean found = false;
        while ((getInfo = in.readLine()) != null) {
            found = true; // found some data; set to true
            Console("[setVersion Length]" + getInfo.length());
            dModVersionList.addElement(getInfo);
        }
        // still false; add your specific element
        if (!found)
            dModVersionList.addElement("no data");

像这样的方法可以奏效:

        String getInfo;
        // set initially to false
        boolean found = false;
        while ((getInfo = in.readLine()) != null) {
            found = true; // found some data; set to true
            Console("[setVersion Length]" + getInfo.length());
            dModVersionList.addElement(getInfo);
        }
        // still false; add your specific element
        if (!found)
            dModVersionList.addElement("no data");
试试看

        while (true) {
            Console("[setVersion Length]" + getInfo.length());
            getInfo = in.readLine();
            if(getInfo.equals("exit")
               break;
            dModVersionList.addElement(getInfo);
        }
试试看

        while (true) {
            Console("[setVersion Length]" + getInfo.length());
            getInfo = in.readLine();
            if(getInfo.equals("exit")
               break;
            dModVersionList.addElement(getInfo);
        }

如果您的
while
循环返回
null
,意味着它不会进入您的
循环
,因此在您的循环之后,您可以执行
null
检查
getInfo
,然后设置您想要的任何
字符串,您可以执行以下操作

                //local variable should be initialised.
                String getInfo = null;
                while ((getInfo = in.readLine()) != null) {
                    Console("[setVersion Length]" + getInfo.length());
                    dModVersionList.addElement(getInfo);
                }
                if(getInfo == null){
                   dModVersionList.addElement("Web page returns empty");
                }

如果您的
while
循环返回
null
,意味着它不会进入您的
循环
,因此在您的循环之后,您可以执行
null
检查
getInfo
,然后设置您想要的任何
字符串,您可以执行以下操作

                //local variable should be initialised.
                String getInfo = null;
                while ((getInfo = in.readLine()) != null) {
                    Console("[setVersion Length]" + getInfo.length());
                    dModVersionList.addElement(getInfo);
                }
                if(getInfo == null){
                   dModVersionList.addElement("Web page returns empty");
                }

对你来说什么是空白网页,隐藏文本的网页是空白的?对你来说什么是空白网页,隐藏文本的网页是空白的?太棒了,谢谢这一个可能被证明是有效的。。。到目前为止:)谢谢你的帮助,很高兴知道。您能否将此答案标记为已接受,以帮助此页面上的未来访问者。非常感谢此答案可能会被证明有效。。。到目前为止:)谢谢你的帮助,很高兴知道。您能否将此答案标记为已接受,以帮助此页面上的未来访问者。
getInfo
的初始值当然为空,但我认为最好的编码实践是专门将其初始化为空。所以我建议不要这样做。另请参见@tmn29a仅
实例
变量将被分配
默认值
,对于字符串,它将是
null
,而局部变量没有
初始化
,代码将不会被编译。因此,除了
good practice
,它甚至不允许您在不初始化的情况下运行。
getInfo
的初始值当然是空的,但我认为更好的编码实践是专门将其初始化为空。所以我建议不要这样做。另请参见@tmn29a仅
实例
变量将被分配
默认值
,对于字符串,它将是
null
,而局部变量没有
初始化
,代码将不会被编译。因此,除了
良好实践
,它甚至不允许您在没有初始化的情况下运行。