相关疑难解决方法(0)

catch中的return语句的行为,最后

请参阅以下代码并解释输出行为.

public class MyFinalTest {

    public int doMethod(){
        try{
            throw new Exception();
        }
        catch(Exception ex){
            return 5;
        }
        finally{
            return 10;
        }
    }

    public static void main(String[] args) {

        MyFinalTest testEx = new MyFinalTest();
        int rVal = testEx.doMethod();
        System.out.println("The return Val : "+rVal);
    }

}
Run Code Online (Sandbox Code Playgroud)

结果是返回Val:10.

Eclipse显示警告:finally block does not complete normally.

catch块中的return语句会发生什么?

java try-catch-finally

67
推荐指数
4
解决办法
5万
查看次数

愿FileInputStream.available愚蠢吗?

这个FileInputStream.available()javadoc说:

返回可以从此输入流中读取(或跳过)的剩余字节数的估计值,而不会被下一次调用此输入流的方法阻塞.下一次调用可能是同一个线程或另一个线程.单个读取或跳过这么多字节不会阻塞,但可以读取或跳过更少的字节.

在某些情况下,非阻塞读取(或跳过)可能在其速度很慢时似乎被阻止,例如在通过慢速网络读取大型文件时.

我不确定在这张支票中是否:

if (new FileInputStream(xmlFile).available() == 0)
Run Code Online (Sandbox Code Playgroud)

我可以依赖那些空文件总是返回零吗?

-

谢谢@SB,他没有完全回答这个问题,但却是第一个给出最佳选择的人:

如果xmlFile是java.io.File对象,则可以使用length()方法获取其大小.

java file-io

6
推荐指数
1
解决办法
5612
查看次数

标签 统计

java ×2

file-io ×1

try-catch-finally ×1