File类——>与电脑上的文件或文件夹产生一一对应的映射关系
    1. File类在java.io包中
    2. 文件或目录路径名的抽象表示形式
    3. File 与真实硬盘中的文件或文件夹 不是同一个东西
    File是在(堆)内存中的一个对象<——-映射——->硬盘上的文件或文件夹
    即可以通过File对象 间接操作 文件或文件夹
    4. 创建对象
    没有无参数的构造方法
    4.1 带(File parent,String child)参数的构造方法
    在父类parent对象的路径下创建child文件


    File pfile = new File(“E:/test”);
    File file = new File(pfile,”love.txt”);
    try {
    System.out.println(file.createNewFile());//若文件不存在就返回true 且按照路径创建文件
    //若文件已存在 返回false
    } catch (IOException e)
    {
    e.printStackTrace();
    }
    4.2 带(String parent,String child)参数的构造方法
    parent路径下创建child文件

    File file = new File(“E:/test”,”love1.txt”);
    try {
    System.out.println(file.createNewFile());
    } catch (IOException e) {
    e.printStackTrace();
    }
    4.3 通常用的是带文件路径 (String pathName)的构造方法来创建

    File file = new File(“E://test//TestFile.txt”);
    //file对象 是在 堆内存中 创建出来一个对象空间
    //路径是看 对象空间 能否 与硬盘中的一个真实文件 产生对应映射关系
    //所以即使路径不对 也能创建对象 也不会产生错误 会有默认值
    //但是不能用错误的路径创建文件 即creatNewFile();
    //也不能用错误的路径 通过文件流去读取文件的内容 会出现问题
    //硬盘上的文件名字是不区分大小写的 内存中的File对象 变量名区分大小写
    5. 常用方法
    主要方法:
    5.1 String path = getAbsolutePath();
    //获取文件的绝对路径
    绝对路径 即从盘符开始 到文件结束
    File file = new File(“E://test//TestFile.txt”);
    //此时是绝对路径
    System.out.println(file.getAbsoluteFile());
    //输出 E:\test\TestFile.txt
    相对路径 即到当前工程(项目)所在的位置找寻 (文件放在工程里可以跟着代码走 所以相对路径比较常用)
    File file = new File(“test//TestFile.txt”);
    //此时是相对路径 不带盘符
    System.out.println(file.getAbsoluteFile());
    //输出 E:\myworkspace\test\TestFile.txt
    5.2 String name = getName();
    //获取文件的名字
    5.3 boolean = creatNewFile();
    //创建新的文件 会有编译时异常
    //路径要给对 不然创建失败 返回false

    File file = new File(“E:/test//TestFile.txt”);
    //创建file对象时 即使不加后缀名(如TestFile) 你调用什么方法就创建什么东西
    //如 调用 createNewFile(); 就创建文件
    //若 调用 mkdir(); 就创建文件夹
    try {
    boolean flag = file.createNewFile();//单独写会出现编译时异常 因为系统会认为你的路径可能会不对(比如乱写的)
    //所以要添加处理异常的手段
    } catch (IOException e) {
    e.printStackTrace();
    }
    5.4 boolean = mkdir();
    //创建新的文件夹 不会出现异常 因为文件夹不占用内存
    //创建时 需要外层(父元素)真实存在 不然无法创建
    //如果 文件已经存在 就无法创建

    File file = new File(“E:/test//bbb/inner”);
    file.mkdir();//返回 false
    //创建时因为 bbb文件夹不存在
    boolean = mkdirs();
    //创建新的文件夹 即使没有外层(父元素) 也可以创建
    5.5 String pname = getParent();
    //获取当前file的父亲file名字
    **File files = getParentFile();
    //获取当前file的父亲file对象

    File file = new File(“E:/test//bbb/inner”);
    file.getParent();//输出 E:\test\bbb
    //这个方法得到的只是名字 无法通过得到的名字 调用方法
    file.getParentFile();
    //这个方法得到的是对象 可以通过对象 调用方法

    还可以通过循环找盘符

    File file = new File(“E:/test//bbb/inner”);
    File pfile = file.getParentFile();
    while(pfile!=null){
    pfile = pfile.getParentFile();
    }

    5.6 String[] names = list();
    //获取当前file的所有儿子名字(文件调用这个方法返回是null 因为文件没有儿子 文件夹如果存在(不管里面有没有元素)返回的是地址 不存在返回null)
    *File[] files = listFile();
    //获取当前file的所有儿子对象(文件调用这个方法返回是null的 因为文件没有儿子 文件夹如果存在(不管里面有没有元素)返回的是地址 不存在返回null)

    File file = new File(“E:/test//aaa/inner.txt”);
    File[] files = file.listFiles();
    //返回 null
    //即如果是文件调用了这个方法(即使文件不存在) 返回都是null 因为文件已经到底了

    File file = new File(“E:/test//aaa”);
    File[] files = file.listFiles();
    //此时调用方法的是文件夹 即使文件夹里面没有元素 仍然输出文件夹的地址 [Ljava.io.File;@1b6d3586
    //若文件夹不存在 返回的是 null
    //可以通过 files.length; (注意此时files是数组 可以调用数组的length属性)来判断文件夹里是否有文件
    //一个文件长度为1

    5.7 boolean = delete();
    //删掉文件或空的文件夹 不能删除带元素的文件夹 可以用递归来删除带元素的文件夹
    一般方法:
    boolean = canRead();//是否可读
    boolean = canWrite();//是否可读
    boolean = canExecute();//是否可执行
    boolean = isHidden();//是否是隐藏
    boolean = isFile();//是否是文件
    boolean = isDirectory();//判断当前file是否是一个目录
    long = length();//获取文件中字节的个数
    long = lastModified();//读取文件最后修改时间(返回毫秒值)
    setlastModified();//修改文件的时间