IO和文件

来源:互联网 发布:淘宝v6会员消费多少钱 编辑:程序博客网 时间:2024/05/17 08:15

public class Test1 {

/** * * A:面试题1        * final,finally和finalize的区别        * final可以修饰类,不能被继承        * 修饰方法,不能被重写        * 修饰变量,只能赋值一次        *         * finally是try语句中的一个语句体,不能单独使用,用来释放资源        *         * finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。    * B:面试题2        * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。 */public static void main(String[] args) {    Demo d = new Demo();    System.out.println(d.method());}

}

class Demo {
public int method() {
int x = 10;
try {
x = 20;
System.out.println(1/0);
return x;
} catch (Exception e) {
x = 30;
return x;
} finally {
x = 40;
//return x; 千万不要在finally里面写返回语句,因为finally的作用是为了释放资源,是肯定会执行的
//如果在这里面写返回语句,那么try和catch的结果都会被改变,所以这么写就是犯罪
}
}
}

public class Test2 {

/** * 键盘录入一个int类型的整数,对其求二进制表现形式 * 如果录入的整数过大,给予提示,录入的整数过大请重新录入一个整数BigInteger * 如果录入的是小数,给予提示,录入的是小数,请重新录入一个整数 * 如果录入的是其他字符,给予提示,录入的是非法字符,请重新录入一个整数 *  * 分析: * 1,创建键盘录入对象 * 2,将键盘录入的结果存储在String类型的字符串中,存储int类型中如果有不符合条件的直接报错,无法进行后续判断 * 3,键盘录入的结果转换成int类型的数据,是正确的还是错误的 * 4,正确的直接转换 * 5,错误的要进行对应判断 */public static void main(String[] args) {    Scanner sc = new Scanner(System.in);    System.out.println("请输入一个整数:");    while(true) {        String line = sc.nextLine();                    //将键盘录入的结果存储在line中        try {            int num = Integer.parseInt(line);               //将字符串转换为整数            System.out.println(Integer.toBinaryString(num));//将整数转换为二进制            break;                                          //跳出循环        }catch(Exception e) {            try {                new BigInteger(line);                System.out.println("录入错误,您录入的是一个过大整数,请重新输入一个整数:");            }catch (Exception e2) {                         //alt + shif + z (try catch快捷键)                try {                    new BigDecimal(line);                    System.out.println("录入错误,您录入的是一个小数,请重新输入一个整数:");                } catch (Exception e1) {                    System.out.println("录入错误,您录入的是非法字符,请重新输入一个整数:");                }            }        }    }}

}

public class Test3 {

/** * @param args * * A:案例演示 * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称 */public static void main(String[] args) {    File dir = new File("E:\\");

// String[] arr = dir.list(); //获取e盘下所有的文件或文件夹
// for (String string : arr) {
// if(string.endsWith(“.jpg”)) {
// System.out.println(string);
// }
// }

    /*File[] subFiles = dir.listFiles();            //获取e盘下所有的文件或文件夹对象    for (File subFile : subFiles) {        if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {            System.out.println(subFile);        }    }*/    String[] arr = dir.list(new FilenameFilter() {        @Override        public boolean accept(File dir, String name) {            //System.out.println(dir);            //System.out.println(name);            File file = new File(dir, name);            return file.isFile() && file.getName().endsWith(".jpg");        }    });    for (String string : arr) {        System.out.println(string);    }}

}