学习Java的第13天

学习Java的第13天

1.File类的使用

  1. file类的理解

    • 指文件和文件目录路径。
    • File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。
    • 文件对象表示的是内存中的,是虚拟的。
    • File对象可以作为参数传递给流的构造器
  2. 常用构造器

    • public File(String pathname) 参数为文件的绝对路径和相对路径
      • 绝对路径:从盘符开始的路径
      • 相对路径:相对于某个位置开始
    • public File(String parent,String child)
      • 以parent为父路径,child为子路径创建File对象
    • public File(File parent,String child)
      • 根据一个父File对象和子文件路径创建File对象
  3. 常用方法

    public String getAbsolutePath()    //获取绝对路径
    public String getPath()   ///获取路径 
    public String getName()		//获取名称
    public String getParent() //获取上层文件目录路径。若无,返回null 
    public long length() //获取文件长度(即:字节数)。不能获取目录的长度。 
    public long lastModified() //获取最后一次的修改时间,毫秒值
    public String[] list() //获取指定目录下的所有文件或者文件目录的名称数组 
    public File[] listFiles() //获取指定目录下的所有文件或者文件目录的File数组 
    public boolean renameTo(File dest)//将文件一的名字改成文件名字二 文件二存在 文件一不存在 
    public boolean isDirectory()//判断是否是文件目录 
    public boolean isFile() //判断是否是文件
    public boolean exists()//判断是否存在
    public boolean canRead()//判断是否可读
    public boolean canWrite()//判断是否可写 
    public boolean isHidden() //判断是否隐藏
    public boolean createNewFile() //创建文件 如果文件存在就不创建
    public boolean mkdir() //创建文件目录 目录存在就不创建 上层目录不存在也不创建
    public boolean mkdirs()//创建文件目录 目录存在就不创建 上层目录不存在 也将上层目录一起创建
    public boolean delete()//删除文件或者文件夹 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
    //当硬盘当中一个真实的文件和目录存在时,创建文件对象,文件大小等各个属性也会显性的根据物理文件赋值
    
    
  4. 练习

    • 利用File构造器,new 一个文件目录file
      1)在其中创建多个文件和目录
      2)编写方法,实现删除file中指定文件的操作
      
       public static void main(String[] args) throws IOException {
            File file1 = new File("E:\\Tools\\hi.txt");
            //下面展示一下如何创建一个文件和文件目录 1.new一个文件或者目录对象 这个是在虚拟内存的
            File file2 = new File("E:\\Tools","haha.txt");
            File file3 = new File("E:\\Tools","haha1");
            //2.通过create方法在物理磁盘中创建文件和目录
            file2.createNewFile();
            file1.createNewFile();
            file3.mkdir();
            file3.delete();
            file1.delete();
            file2.delete();
        }
    
    • 判断指定目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

       @Test
          public void test1(){
              File srcfile = new File("e:\\Tools\\code");
              //1.创建一个当前文件所在的路径
              String[] fileNames = srcfile.list();
              //2.用当前目录下的文件名存放到字符数组当中
              for (String fileName : fileNames){
                  if (fileName.endsWith(".jpg")){
                      System.out.println(fileName);
                  }
              }
          }
      
    • 3. 遍历指定目录所有文件名称,包括子文件目录中的文件。
      拓展1:并计算指定目录占用空间的大小拓展
      2:删除指定文件目录及其下的所有文件
      
      public class Work {
          @Test
          public  void method(){
              //1.创建目录对象
              File dir = new File("C:\\Users\\MSI\\Documents\\雷电模拟器");
              //2.打印目录的子文件
              printSubFile(dir);
          }
          public void printSubFile(File dir){
              //1.dir目录中的文件存储到File文件数组中
              File[] subfiles = dir.listFiles();
              //2.遍历该文件数组
              for (File file :subfiles){
                  //3.判断该文件是否是文件目录 是递归 否删除
                  if (file.isDirectory()){
                      printSubFile(file);
                  }else
                      System.out.println(file.getAbsoluteFile());
              }
              for (File file :subfiles){
                  //3.判断该文件是否是文件目录 是递归 否删除
                  if (file.isDirectory()){
                      file.delete();
                  }
              }
          }
      }
      
      

猜你喜欢

转载自www.cnblogs.com/wumingzhibei/p/12579520.html