2022年04月07日报告

2022年04月03日讲到了 Collections工具类,同志们

1.泛型

List<Integer> pokers = new ArrayList<>();        // 这个 <> 里的就是泛型

// 这里的List<?> 指的是所有List<>的父类
// 也就是 这个方法里传什么类型的 List 都可以
// 但是这样的 List集合 不能添加值
public void test(List<?> list){
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i).getClass());
    }
}

小编定义了 一个形状体抽象类, 里面有个绘制的方法  draw(),

她有两个子类:    圆形类   圆角矩形类, 她们重载了绘画的方法

最后定义一个  画布类,里面有一个   全部绘制的方法  drawAll(),

可以传入  一个形状体集合,   把里面 所有元素全部   绘制出来

public class Canvas {
    //画布类
    //这个形参列表里要写成这样 才能传入 不同类型的形状体
    public void drawAll(List<? extends Shape> list){
        for (Shape shape : list) {
            shape.draw();
        }
    }
}

2.异常处理

public class ExceptionDemo {
        // 以前我们每次用 Scanner都要抛一下异常 
    public static void main(String[] args) throws FileNotFoundException {
        Scanner scanner = new Scanner(new File(""));
}
}
public static void get(int[] array, int index) {
        if (index < 0 || index > array.length - 1) {
            // 写一个 throw 我们就可以自己打印异常了 :
            throw new ArrayIndexOutOfBoundsException("正儿吧经的!");
        }
        int i = array[index];
        System.out.println(i);
    }
 public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8};
        // 使用 try和 catch可以捕获异常
        try {
            // 这个 1 可以输出
            System.out.println(1);
            Scanner scanner = new Scanner(new File(""));
            // 这个 2 输出不了
            System.out.println(2);
        } catch (FileNotFoundException fileNotFoundException) {
            // 打印异常信息
            fileNotFoundException.printStackTrace();
        }   // 这样还能捕获多个异常
        catch (NullPointerException nullPointerException){
            nullPointerException.printStackTrace();
        }
        // 它和throw的区别就是:
        // try catch后面的语句 依旧会执行
        System.out.println("try语句后的代码");
    }

3. File类

就是一个用来操作文件的类

下面是 File类 里的一些方法

public class fileDemo {
    public static void main(String[] args) {
        File file = new File("file/e82.txt");

        // 1. getAbsolutePath()      得到文件的绝对路径
        String absolutePath = file.getAbsolutePath();
        System.out.println(absolutePath);

        // 2. getPath()              得到文件的路径
        System.out.println(file.getPath());

        // 3. getName()              得到文件的名称
        System.out.println(file.getName());

        // 4. length()               得到文件的大小
        System.out.println(file.length());

        // 5. getParent()            得到文件的上级目录
        System.out.println(file.getParent());

        // 6. renameTo()             将文件剪切然后改名
        //file.renameTo(new File("D:\\demo.txt"));

        // 7. exists()               判断文件是否存在
        System.out.println(file.exists());

        // 8. isFile()               判断是否为文件
        System.out.println(file.isFile());

        // 9. isDirectory()          判断是否为目录
        System.out.println(file.isDirectory());

        // 10. canWrite()            判断文件是否可写
        System.out.println(file.canWrite());

        // 11. canRead()             判断文件是否可读
        System.out.println(file.canRead());

    }
}
public class fileDemo2 {
    public static void main(String[] args) throws IOException {
        File file = new File("file");
        // 1. createNewFile()       新建一个文件
        file.createNewFile();

        // 2. delete()              删除一个文件
        // 只能删除空目录,有内容则无法删除
        file.delete();

        // 3. mkdir()               新建一个目录
        //    mkdirs()              可以连续创建好多层目录
        file.mkdir();

        // 4. 这样可以输出 文件创建的时间
        long l = file.lastModified();
        Date date=new Date(l);
        System.out.println(date);

        // 5. listFiles()           可以返回一个 File[]数组,得到全部子文件
        // 只能拿到一层目录里面的内容
        File[] files1 = file.listFiles();
        for (int i = 0; i < files1.length; i++) {
            System.out.println(files1[i].getName());
        }

        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                // 写 false 为 不添加
                // 写 true  为 添加
                // 这样写就可以得到 文件夹里所有的 .txt文件了
                return pathname.getName().endsWith(".txt");
            }
        });
        for (File file1 : files) {
            System.out.println(file1.getName());
        }
    }
}

THE END  (^_^)/(T_T)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒂法挤挤挤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值