• day26_File(文件)流和Lambda表达式


    今日内容:

    • File流(文件操作)

    • Lambda表达式

    File流

    (主要就是一些关键字以及使用方法)

    1.分隔符

               static String pathSeparator    ;  与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 
               static char pathSeparatorChar  ;  与系统有关的路径分隔符。 
               static String separator          与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 
               static char separatorChar        与系统有关的默认名称分隔符。 

    使用格式:

    String pathseparator = File.pathSeparator;
    System.out.println(pathseparator);// ;

    String separator = File.separator;
    System.out.println(separator);//

    2.File:用于路径映射,通过输入的字符串将其转化成路径抓取

    路径:
    绝对路径: 是一个完整的路径 一般以盘符(D:,C:,c:,d:)为开头
        如: D:DeveloperJavajdk1.8.0_191README.html
    相对路径:是一个简化的路径
        E:codesworkspaceday26_LambdaAndFile.classpath---->简化为:.classpath(可以省略前面项目的根目录)
    注意:
        1.路径是不区分大小写
        2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠才代表一个普通的反斜杠。
    
    格式:
            File f1 = new File("D:\小鸟\one\two");
            System.out.println(f1);//D:\小鸟\one\two

    3.获取功能的方法

    public String getAbsolutePath():返回此File表示的绝对路径名字符串。 
    public String getPath():将此File转换为路径名字符串   源码调用toString方法
    public String getName():返回由此File表示的文件或目录的名称。  末尾文件显示
    public long length():返回此File表示的文件的长度。  末尾文件的大小,如果文件不存在,为0;
    
    
    格式    File f1 = new File("D:\小鸟\one\two");
        String absolutePath = f1.getAbsolutePath();
        System.out.println(absolutePath);// D:小鸟one	wo
    
        File f2 = new File(".classpath");
        String path2 = f2.getPath();
        System.out.println(path2);// .classpath
    
        File f1 = new File("D:\小鸟\one\two");
        String name = f1.getName();
        System.out.println(name);//two
    
        File f2 = new File("C:\Users\挖掘机\Desktop\File\demo01");
        long length2 = f2.length();
        System.out.println(length2);//4096

    4.判断功能的方法

    public boolean exists():判断File表示的文件或者文件夹是否实际存在 //绝对位置找直接找。没有就是false 相对位置找从这个文档的项目开始找
    public boolean isDirectory():判断此File表示的文件夹是否存在
    public boolean isFile():判断此File表示的文件是否存在
    
    格式:
            File f1 = new File("D:\小鸟\one\two");
            System.out.println(f1.exists());// true
    
            File f5 = new File("123.txt");
            System.out.println(f5.exists());//false
    
            File f1 = new File("E:\codes\workspace\day26_LambdaAndFile\.classpath");
            System.out.println(f1.isDirectory());// false
            System.out.println(f1.isFile());// true

    5.删除添加文件夹/文件

    public boolean createNewFile():当且仅当具有该名称的文件不存在时,创建一个空文件,返回值是true
    注意:
        1. 此方法不能创建文件夹,只能创建文件
        2. 创建文件的路径必须存在,否则就抛出异常。
    
    public boolean delete():删除由此File表示的文件或者目录    删除空文件夹,文件不用为空
    此方法,可以删除构造方法路径中给出的文件或者文件夹
        注意:
             delete方法时直接从磁盘删除文件/文件夹,不经过回收站。    
             文件夹中有内容不能删除,但是文件中有内容不影响删除
             删除的路径可以是相对路径也可以是绝对路径,
             如果是相对路径,则查看当前项目的根目录是否有该文件或者文件夹,
                 如果有且内容为空删除,如果没有返回false,删除失败。
    
    
    public boolean mkdir():创建由此File表示的文件夹   一层一层创建文件夹 
    创建单级空文件夹
    public boolean mkdirs():创建由此File表示的文件夹,包括任何必须但是又不存在的父目录     创建很多层文件夹。
    既可以创建单级空文件夹,也可以创建多级孔文件夹
         注意:
            此方法只能创建文件夹,不能创建文件
            路径不对也不会抛出异常,可以使用相对路径也可以使用绝对路径
    
    格式:
            File f1 = new File("D:\小鸟\one\two");
            boolean b1 = f1.createNewFile();
            System.out.println(b1);// false
    
            File f1 = new File("D:\小鸟\one\two\125");
            boolean b1 = f1.mkdir();
            System.out.println(b1);// true  创建123文件夹
    
            File f1 = new File("E:\codes\workspace\day26_LambdaAndFile\aa");
            boolean b1 = f1.delete();
            System.out.println(b1);

    6.目录的遍历

    public String[] list():返回一个String数组,表示该File目录中的所有的子目录或者子文件。(子目录子文件)
    public File[] listFile():返回一个File数组,表示该File目录中的所有的子目录或者子文件。(子目录路径和子文件路径)

    注意事项:
    list方法和listFile方法遍历的是构造方法中指定的目录。
    如果构造方法中给出的目录的路径不存在,会抛出空指针异常。
    如果构造方法中给出的目录不是一个目录,也会抛出一个空指针异常。

    File file = new File("E:\codes\workspace\day26_LambdaAndFile");
    String[] list = file.list();
    // 遍历
    for (String string : list) {
    System.out.println(string);
    }

    File file = new File("E:\codes\workspace\day26_LambdaAndFile");
    File[] list = file.listFiles();
    // 遍历
    for (File f : list) {
    System.out.println(f.toString());
    }

    Lambda表达式

    标准格式:
    (参数类型1 参数名称1,参数类型2 参数名称2,....) -> {代码语句}

    格式说明

     小括号内的语法与传统的方法参数列表一致,无参数就留空,多个参数则用逗号隔开
     ->数新引入的语法格式,代表指向的动作 
     大括号里的语法与传统方法体要求基本一致

    Lambda省略格式:

    Lambda强调的是做什么,而不是怎么做,所以凡是可以根据上下文推到得知的信息,都可以省略。比如:
    
    invokeSum(3.14, 3.15, (double d1,double d2) ->{
                    return d1 + d2;
        });
    //省略格式表达
    invokeSum(3.14,3.15,(d1,d2)->d1+d2);

    省略的规则

    在Lambda标准格式的表达式的基础上,使用省略写法的规则是:
    
    ​    1.小括号内参数参数的类型可以省略
    
    ​    2.如果小括号内有且仅有一个参数,则小括号也可以省略
    
    ​    3.如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号,return关键字和语句的分号

    Lambda使用的前提

    Lambda的语法非常的简洁,使用非常的简单,但是有以下注意事项:
    
    1.使用Lambda必须由接口,且要求接口中有且仅有一个抽象方法
    
       无论JDK内置的Runnable、Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一,才可使用Lambda
    
    2. 使用Lambda必须具有上下文推断。
    
       也就是方法的参数或者局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为该接口的实例。
    
    备注:如果有且仅有一个抽象方法的接口,称为函数式接口
  • 相关阅读:
    [Delphi]ListView基本用法大全
    Delphi 数据类型列表
    什么是堆、栈?
    使用钩子函数[1]
    邻道干扰
    内存管理[1]
    c#中复制类提示“Resource”参数不支持重复项的解决办法
    转帖:IE对话框showModalDialog(模态)和showModelessDialog
    今日工作心得:一段用于验证的jQuery代码
    每个开发人员现在应该下载的十种必备工具
  • 原文地址:https://www.cnblogs.com/rxqq/p/14131766.html
Copyright © 2020-2023  润新知