IO和文件

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);
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值