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     }

        如图所示:

          



      

  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/zhai113/p/11698226.html
Copyright © 2011-2022 走看看