美文网首页
File类学习

File类学习

作者: 厉害了我的彭 | 来源:发表于2017-05-12 08:22 被阅读0次

File类(File类的概述和构造方法)

  • A:File类的概述
    • File更应该叫做一个路径

      • 文件路径或者文件夹路径
      • 路径分为绝对路径和相对路径
      • 绝对路径是一个固定的路径,从盘符开始
      • 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
    • 查看API指的是当前路径
      用File类的构造方法,将桌面路径封装成File对象需要注意什么?

    • 文件和目录路径名的抽象表示形式 !!!注意路径 是\表示,eg: E:\ 因为与转义字符区分

  • B:构造方法
    • File(String pathname):根据一个路径得到File对象
    • File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
    • File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
  • C:案例演示
    • File类的构造方法
      案例:
      package com.heima.file;
      import java.io.File;
      public class Demo1_File {
      public static void main(String[] args) {
      //demo1();
      //demo2();
      demo3();
      }
      private static void demo3() {
      注意“”里面使用\会转义,所以应该?,但是文件输入流里面如果用/会怎样?

      @@File parent = new File("F:\双元课堂\day19\video");
      @@ //文件的输入流
      InputStream in = new FileInputStream("src/db.properties");
      String child = "001_今日内容.avi";
      //封装成file对象的好处,可以使用file对象的更多方法
      File file = new File(parent, child);
      System.out.println(file.exists());
      System.out.println(parent.exists());
      }
      public static void demo2() {
      String parent = "F:\双元课堂\day19\video";
      String child = "001_今日内容.avi";
      File file = new File(parent,child); !!!File类父子构造方法存在,因为可以让child 成了变量,可以不停赋值改变,这样就能建立不同的File,访问或建立每个父类s下的文件。
      System.out.println(file.exists());
      }
      public static void demo1() {
      //File file = new File("XXX.txt");//XXX.txt代表相对路径,相对于当前项目所在的位置
      //File file = new File("F:/双元课堂/day19/video/001_今日内容.avi");

      File file = new File("F:\双元课堂\day19\video\001_今日内容.avi");
      System.out.println(file.exists());
      //需要在所在项目下建立xxx.txt文件
      File file2 = new File("xxx.txt");
      System.out.println(file2.exists());

      File file3 = new File("yyy.txt");
      System.out.println(file3.exists());
      }
      }

19.15_File类(File类的创建功能)

  • A:创建功能
    • public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
    • public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
    • public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
  • B:案例演示
    • File类的创建功能

    • 注意事项:

      • 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。 !!!关键是不写盘符路径

案例:
package com.heima.file;
import java.io.File;
import java.io.IOException;
public class Demo2_FileMethod {

public static void main(String[] args) throws IOException {
    //demo1();
    demo2();
}
private static void demo2() {
    File dir1 = new File("aaa");
    System.out.println(dir1.mkdir());
    
    File dir2 = new File("bbb.txt");                //这样写是可以的,文件夹也是可以有后缀的
    System.out.println(dir2.mkdir());
    
    File dir3 = new File("ccc\\ddd");
    System.out.println(dir3.mkdirs());              //创建多级目录
}
public static void demo1() throws IOException {
    File file = new File("yyy.txt");
    System.out.println(file.createNewFile());           //如果没有就创建,返回true
    
    File file2 = new File("zzz");
    System.out.println(file2.createNewFile());
}

}

19.16_File类(File类的重命名和删除功能)

  • A:重命名和删除功能
    • public boolean renameTo(File dest):把文件重命名为指定的文件路径
    • public boolean delete():删除文件或者文件夹 !!!删除文件夹必须里面没有任何文件夹和文件
  • B:重命名注意事项
    • 如果路径名相同,就是改名。
    • 如果路径名不同,就是改名并剪切。
  • C:删除注意事项:
    • Java中的删除不走回收站。

    • 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
      案例:
      package com.heima.file;
      import java.io.File;
      public class Demo3_FileMethod {
      public static void main(String[] args) {
      //demo1();
      File file1 = new File("yyy.txt");
      System.out.println(file1.delete());

      File file2 = new File("aaa");
      System.out.println(file2.delete());

      File file3 = new File("ccc"); //如果删除一个文件夹,那么文件夹必须是空的
      System.out.println(file3.delete());
      }
      public static void demo1() {
      File file1 = new File("ooo.txt");
      File file2 = new File("D:\xxx.txt");
      System.out.println(file1.renameTo(file2));
      }
      }

19.17_File类(File类的判断功能)

  • A:判断功能

    • public boolean isDirectory():判断是否是目录
    • public boolean isFile():判断是否是文件
    • public boolean exists():判断是否存在
    • public boolean canRead():判断是否可读
    • public boolean canWrite():判断是否可写
    • public boolean isHidden():判断是否隐藏
  • B:案例演示

    • File类的判断功能
      案例:
      package com.heima.file;
      import java.io.File;
      public class Demo4_FileMethod {

    public static void main(String[] args) {
    //demo1();
    demo2();
    }
    public static void demo2() {
    File file = new File("zzz");
    file.setReadable(false);
    System.out.println(file.canRead()); //windows系统认为所有的文件都是可读的
    file.setWritable(true);
    System.out.println(file.canWrite()); //windows系统可以设置为不可写
    //现在项目路径下建立aaa.txt,并设置为隐藏
    File file2 = new File("aaa.txt");
    System.out.println(file2.isHidden()); //判断是否是隐藏文件
    System.out.println(file.isHidden());
    }
    public static void demo1() {
    File dir1 = new File("ccc");
    System.out.println(dir1.isDirectory()); //判断是否是文件夹

      File dir2 = new File("zzz");
      System.out.println(dir2.isDirectory());
      
      System.out.println(dir1.isFile());              //判断是否是文件
      System.out.println(dir2.isFile());
    

    }
    }

19.18_File类(File类的获取功能)

  • A:获取功能
    • public String getAbsolutePath():获取绝对路径
      getAbsolutPath()与getPath()使用注意点

          !!!  在一道题中,我看到老师直接System.out.println(new File()),奇诡哎,后来发现它重现了toString方法,又发现toString方法ruturn getPath()但是当时我做题时得到的却是绝对路径,后面才知道原来getPath()是你传相对路径就打印相对,传绝对就打印绝对,而getAbsolutePath()是无论怎样返回绝对路径,注意File对象可以用getFile()得到他的文件名,不是路径值。  那道题是那一道?对,就是21.17遍历一个路径下所有指定后缀文件名的文件,要输出文件路径时产生的疑惑。
       * public String getPath():获取路径 !!!获取构造方法传入的路径
      
    • public String getName():获取名称 !!!注意要和toString方法区分
      file类获取长度单位是?

    • public long length():获取长度。字节数

    • public long lastModified():获取最后一次的修改时间,毫秒值

    • public String[] list():获取指定目录下的所有文件或者文件夹的名称数组

    • public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 !!!listFiles() 只是能得到那一层的文件对象而已,并不是我想的可以深入多层查找。

  • B:案例演示
    • File类的获取功能
      案例:
      package com.heima.file;
      import java.io.File;
      import java.text.SimpleDateFormat;
      import java.util.Date;
      public class Demo5_FileMethod {
      public static void main(String[] args) {
      //demo1();
      demo2();
      }
      public static void demo2() {
      File dir = new File("F:/双元课堂/day19/video");
      String[] arr = dir.list(); //仅为了获取文件名

      for (String string : arr) {
      System.out.println(string);
      }

      File[] subFiles = dir.listFiles();

      for (File file : subFiles) { //获取文件对象
      System.out.println(file);
      }
      }
      public static void demo1() {
      File file1 = new File("ccc.txt");
      File file2 = new File("D:\双元课堂\day19\ccc.txt");
      //System.out.println(file1.getAbsolutePath()); //获取绝对路径
      //System.out.println(file2.getAbsolutePath());

      //System.out.println(file1.getPath()); //获取构造方法中传入路径
      //System.out.println(file2.getPath());

// System.out.println(file1.getName()); //获取文件或者文件的名字
// System.out.println(file2.getName());
//
// System.out.println(file1.length());

    Date d = new Date(file1.lastModified());                //文件的最后修改时间
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    System.out.println(sdf.format(d));
}

}

19.19_File类(输出指定目录下指定后缀的文件名)

  • A:案例演示
    • 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
      案例:
      package com.heima.test;
      import java.io.File;
      import java.io.FilenameFilter;
      public class Test3 {
      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);
        }
    }       
}

}

19.20_File类(文件名称过滤器的概述及使用)

  • A:文件名称过滤器的概述

    • public String[] list(FilenameFilter filter)
    • public File[] listFiles(FileFilter filter)
  • B:文件名称过滤器的使用

    • 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
  • C:源码分析

    • 带文件名称过滤器的list()方法的源码
      案例:
      package com.heima.test;
      import java.io.File;
      import java.io.FilenameFilter;
      public class Test3 {
      public static void main(String[] args) {
      File dir = new File("E:\");

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

相关文章

  • File类学习

    File类(File类的概述和构造方法) A:File类的概述File更应该叫做一个路径文件路径或者文件夹路径路径...

  • file类学习

    (一)根据路径找到file对象 1.File(String pathname):根据一个路径得到File对象 2....

  • I/O的学习之字节流

    I/O的学习之字节流 今天的主要内容 File类的使用File类概述和构造方法File类的创建功能File类的重命...

  • Java-I/O学习(4)

    Java-I/O学习(4) File Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可...

  • Java中的File类

    1.1.0、学习目的 理解 File 类的作用和意义参见 1.1.1 概述部分 理解 File 类中的常量的含义和...

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • io——File类

    一、File类 1、File类要点概述 File类直接父类为Object类; 一个File类对象,表示一个磁盘上的...

  • 3/20day15_File类_递归_IO流_字节流

    复习 今日内容 File类 递归 IO流 字节流 File类 File类的作用 File类可以表示文件或者文件夹(...

  • 【004】2020.11.03 周二 --《Java数据的输入输

    File类 问题01:创建File类的三种方式 回答01: 1)File file = new File("/tm...

  • File与IO基础

    IO流的作用:持久化到磁盘 File类的使用 File类基本概念 文件和文件夹都是用File类来表示。 File类...

网友评论

      本文标题:File类学习

      本文链接:https://www.haomeiwen.com/subject/aqcztxtx.html