day08 Stream流、异常、file

一、Stream流

1.1认识Stream

也叫stream流,用作操作数组或集合的数据

优点:stream流大量结合了lambda表达式的语法风格来编写代码,使得代码更简洁、可阅读性更高。

使用步骤:①获取stream流②调用中间方法③调用最终方法

 

1.2 Stream常用的方法

中间方法

终结方法

 

收集方法

把stream流收集为List、Set、Map集合(也可以转换为数组)

 

public class Demo01 {
    public static void main(String[] args) {
        /*
           目标:能够把Stream对应转化 集合 / 数组
         */
        //创建学生对象
        // 筛选出考试前三面的同学,收集成一个List
        Student s1 = new Student("张三",78);
        Student s2 = new Student("李四",34);
        Student s3 = new Student("王五",64);
        Student s4 = new Student("赵六",96);
        Student s5 = new Student("老八",89);
        ArrayList<Student> list = new ArrayList<>();
        Collections.addAll(list,s1,s2,s3,s4,s5);
        //收集成List
        List<Student> studentList = list.stream().sorted((o2, o1) -> {
                    return Double.compare(o1.getScore(), o2.getScore());
                })
                .limit(3)
                .collect(Collectors.toList());
        System.out.println(studentList);
        //收集成set
        Set<Student> studentSet = list.stream().sorted((o2, o1) -> {
                    return Double.compare(o1.getScore(), o2.getScore());
                })
                .limit(3)
                .collect(Collectors.toSet());
        System.out.println(studentSet);
        //收集成map
        //lambda的形式
        Map<String, Double> map = list.stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getScore()));
        System.out.println(map);
        //收集成数组
        Object[] array = list.stream().toArray();
        System.out.println(Arrays.toString(array));
    }
}

二、异常

2.1 了解异常的概念和体系

异常简单来说就是程序出现的问题,分为编译时异常和运行时异常

 

Error:系统级别异常,sun公司会把这些问题封装成Error对象给出来,说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。

Exception:叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题

2.2 掌握异常处理方式1-try…catch

格式:try {

   可能出现异常的代码;

} catch(异常类名 变量名) {

   异常的处理代码;

}

必须有try 可以没有catch

如:try{}finally{} 但是catch(异常类名 变量名) {

   异常的处理代码;}是错误的写法

异常类名,不记得具体子类的时,可以直接写入Exception

好处:可以让程序继续执行。

try/catch细节

try/catch中有异常的执行流程;try/catch中没有异常的执行流程;try/catch中有多个异常怎么处理;处理异常可以写父类。

Demo

 

2.3 掌握finally代码块

有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行不到。而finally就是解决这个问题的。

在finally代码块中的代码一定会被执行。

格式:try {

   可能出现异常的代码;

} catch(异常类名 变量名) {

   异常的处理代码;

} finally {

   代码;

}

Demo

2.4 掌握异常处理方式2-throws

格式:修饰符 返回值类型 方法名(参数) throws 异常类名1, 异常类名2 { }

当自己无法处理异常的时候,把异常抛出来给被人去解决,表面的异常能够去解决,能通过编译,相当于甩锅。

Demo

2.5 了解自定义异常和使用自定义异常

目的:JDK虽然提供了许多异常,但是并不是所有的异常都会满足我们的需求,这时候根据自己的业务需求自定义异常类,如成绩负数、年纪小于十八等。

步骤:定义类继承Exception或者RuntimeException;编写构造器

Demo

public class UserException extends RuntimeException{
    public UserException() {
    }

    public UserException(String message) {
        super(message);
    }
}
public class User {

    public static void main(String[] args) {
        User user = new User();
        user.getPassword("22222");
    }
    public void getPassword(String psd) throws UserException{
        if (psd.length() < 6 || psd.length() > 20){
            throw new UserException("输入的密码异常");
        }
    }
}

三、File

3.1 创建对象

可以根据文件的路径去创建文件对象,路径分为绝对路径、相对路径(推荐使用)。

绝对路径:从符盘开始

                File file1 = new File(“D:\\itheima\\a.txt”);

相对路径:没有符盘,默认直接到当前工程下的目录寻找文件。

                File file3 = new File(“模块名\\a.txt”);

创建格式:File file = new File(相对路径)

File f1 = new File("C:\\Users\\Administrator\\IdeaProjects\\JAVASE\\day08-Stream-Exception-File\\file");
        f1.createNewFile();
        //相对路径   C:\Users\Administrator\IdeaProjects\JAVASE\day08-Stream-Exception-File\file
        System.out.println(f1.getAbsolutePath());
        File f2 = new File("day08-Stream-Exception-File\\file");
        f2.createNewFile();
        System.out.println(f2.getAbsolutePath());

3.2 常用方法1:创建文件、删除文件

创建空文件:public boolean createNewFile()

创建一级文件夹:public boolean mkdir()

创建多级文件夹:public boolean mkdirs()

注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。(慎重操作!!!)

Demo

//创建一个tem文件夹
        File f3 = new File("day08-Stream-Exception-File\\file\\tem");
        f3.mkdir();
        //创建个多级文件夹
        File f4 = new File("day08-Stream-Exception-File\\file\\a/b/c");
        f4.mkdirs();
        //删除tem文件夹
        File f5 = new File("day08-Stream-Exception-File\\file\\tem");

3.2 常用方法2:判断文件类型、获取文件信息

 方法的具体使用

//判断文件是否存在
        File f6 = new File("day08-Stream-Exception-File\\file\\a");
        System.out.println("文件路径是否存在:"+f6.exists());
        //判断是否为文件
        System.out.println("是否为文件:"+f6.isFile());
        //判断是否为文件夹
        System.out.println("是否为文件夹:"+f6.isDirectory());
        //获取文件名称
        File f7 = new File("day08-Stream-Exception-File\\file/a/b/c/tem");
        System.out.println("文件名字:"+f7.getName());
        //文件大小
        System.out.println("文件的大小:"+f7.length());
        System.out.println("最后修改时间:"+f7.lastModified());
        System.out.println("创建文件对象的路径:"+f7.getParent());

3.4 常用方法3:遍历文件夹

File类提供两种遍历文件夹的方法

public String[] list() ---> 获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。

public File[]  listFile() --->获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

Demo

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值