zoukankan      html  css  js  c++  java
  • File 类

    概念

      Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

      File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象。

      File 类 的目录 就是我们常说的文件夹

    常用的构造方法

      public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

      public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。

      public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。

      例:

    1 //File构造方法没有判定该路径是否真实存在的功能
    2         File file=new File("D:\demo0723\a.txt");//(String pathname)
    3         System.out.println(file);
    4         File file2=new File("D:\demo0723","a.txt");//(String parent,String child)
    5         System.out.println(file2);
    6         File file3=new File(new File("D:\demo0723"),"a.txt");    //(File parent,String child)
    7         System.out.println(file3);

      如图所示:

        

    File类的获取

      获取与系统有关的路径分隔符              ( win是 ; linux 是 :)

        System.out.println(File.pathSeparator);  

      获取与系统有关的路径名称 分隔符      (win是   linux 是 /

        System.out.println(File.separator);

      获取绝对路径 :getAbsolutePath();

      获取文件的路径:getPath();

      获取文件的长度:length();

      例:

     1 //将a.txt封装为File对象
     2         File file=new File("D:\demo0723\a.txt");        //不判断是否存在
     3         //获取绝对路径  
     4         String path1=file.getAbsolutePath(); 
     5         System.out.println("绝对路径为"+path1);
     6         String name=file.getName(); //类似toString
     7         System.out.println(name);
     8         //获取文件的路径
     9         String path2=file.getPath();
    10         System.out.println(path2);
    11         //获取文件的长度
    12         long length=file.length();
    13         System.out.println(length);

      如图所示:

        

    文件和文件夹的创建删除等

      文件的创建:createNewFile()   

    1 //指定要创建的文件的名称和路径
    2         File file=new File("D:\demo0723\b.txt");
    3         //如果该路径存在,则不创建,返回false;如果该路径不存在,则创建,返回true
    4         //该方法只能创建文件,不能创建文件夹
    5         System.out.println(file.createNewFile());

      文件的删除:.delete()

      判断文件是否存在:exists()     返回值true false

      判断文件对象表示的路径是否是文件:isFile();

      判断文件对象表示的路径是否是文件夹:isDirectory();

      创建文件夹:mkdir()   多级文件夹:mkdirs();         该方法只能创建文件夹,不能创建文件

    1 File file=new File("D:\demo0723\b\a\c");
    2             boolean flag=file.mkdirs();
    3             System.out.println(flag);

    listFiles()  

      获取路径下所有的文件或文件夹的名称数组:list()

      获取路径下所有的文件或文件夹的file对象数组:listFiles();

     1 //获取路径下所有的文件或文件夹的名称数组
     2     File file=new File("D:\demo0723");
     3     String [] files=file.list();
     4     //遍历
     5     for(String f:files){
     6         System.out.println(f);
     7     }
     8 //    获取路径下所有的文件或文件夹的file对象数组
     9 File file=new File("D:\demo0723");
    10     File[] files=file.listFiles();
    11     //遍历
    12     for(File f:files){
    13         System.out.println(f);   //toString
    14                 
    15     }    

      如图所示:

        

     文件过滤器

      1.先定义一个类继承FilenameFilter过滤器接口:MyFilter.java

      2.在MyFilter.java里定义accept方法来判断是否存在指定文件

      3.accept方法判定存在,选择过滤的文件类型:endsWith(".txt") 

      4.最后调用MyFilter.java 里所判定的方法

      例:

        1.MyFilter.java

     1 public class MyFilter implements FileFilter {
     2 
     3     
     4     public boolean accept(File pathname) {
     5         //获取文件名
     6         String filename=pathname.getName();//a.txt
     7         return filename.endsWith(".txt");
     8     }
     9     
    10 }

        2.调用

     1 public static void main(String[] args) {
     2         // 指定要找那个路径想的所有txt文件
     3         File file=new File("D:\demo0723");
     4         File[] files=file.listFiles(new MyFilter());
     5         //遍历
     6         for(File f:files){
     7             System.out.println(f);
     8         }
     9         
    10     }

        如图所示:

          



      

  • 相关阅读:
    c/c++(c++和网络编程)日常积累(二)
    docker日常积累
    c/c++日常积累
    qt日常积累
    YUV相关积累
    02-asio学习
    01--c实现基础客户端和服务端与c++ boost.asio实现对比
    webrtc学习笔记积累
    linux-日常工作积累
    用Java链接SQL Server
  • 原文地址:https://www.cnblogs.com/zhai113/p/11698226.html
Copyright © 2011-2022 走看看