import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
*
* try-catch-finally中finally的使用
*
*
* 1.finally是可选的
*2.finally中声明的是一定会被执行的代码,即使catch中又出现异常了,try中有return语句,catch中也有return语句等情况。
*3.哪些是必须要执行的代码
* 像数据库连接,输入输出流,网络编程Socker等资源,JVM是不能自动回收的,我们需要自己手动的进行资源的释放,此时的资源
* 释放,就要声明在finally中
*
*
* @author orz
*/
public class FinallyTest {
public static void main(String[] args) {
// try {
// int a=10;
// int b=0;
// System.out.println(a/b);
// }catch (ArithmeticException e)
// {
// e.printStackTrace();
// int [] arr=new int[10];
// System.out.println(arr[11]);
// }
//// System.out.println("我好帅啊~~");
// finally {
// System.out.println("我好帅啊~~");
// }
FileInputStream fis=null;
try {
File file = new File("hello.txt");
fis = new FileInputStream(file);
int data = fis.read();
while (data != -1) {
System.out.println((char) data);
data = fis.read();
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally {
try{
if(fis!=null)
{
fis.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}