zoukankan      html  css  js  c++  java
  • Java文件操作——File

    创建File

      isFile()、length()、exists()、createNewFile()、

      File.separator /

      isDirtory()、 mkdir()、mkdirs()、 delete()、

      listFiles()、FileFilter(){};

    -------------------------------淫荡分隔----------------------------------

    创建File文件对象

    java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

    File类只用于表示文件(目录)的信息(名称、大小等),换句话说只能访问文件或目录的相关属性,不能对文件的内容进行访问。

    public class Filedemo1 {
        public static void main(String[] args) {
            // java.io.File  判断是否为文件
            File file= new File("./1.txt");
            
            boolean isFile = file.isFile();
            if(isFile){
                System.out.println("是一个文件");
            }else{
                System.out.println("不是一个文件");
            }
            
            /*
             * 查看文件占用的字节量  注意目录无大小
             * 
             */
            long length =file.length();
             System.out.println("占用"+length+"字节");
             /*
              * 查看File描述文件或目录是否为真实存在
              */
             boolean exists = file.exists();
             
             if(exists){
                 System.out.println("存在");
                 
             }else{
                 System.out.println("不存在");
             }
        }
    class FileDemo2{
        public static void main(String[] args) throws IOException {
            /*
             * 在当前项目根目录下创建文件test.txt
             * 
             */
            //使用一个File对象描述该文件   
            // File.separator 代替/
            File file= new File("."+File.separator+"2.txt");
            //判断该文件是否在硬盘中不存在
            if(!file.exists()){
                //创建该文件
                file.createNewFile();
            }
            System.out.println(file.exists());
        }
    }

     File表示目录信息
    1. isDirectory()

    File的isDirectory方法用于判断当前File对象表示的是否为一个目录

    2. mkdir方法

    File的mkdir方法用于创建此抽象路径名指定的目录。其方法定义:
    boolean mkdir()
    返回值:当且仅当已创建目录时,返回 true;否则返回 false
    3. mkdirs方法

    File的mkdirs方法用于创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。其方法定义:
    boolean mkdirs()
    返回值:当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false

    class FileDemo3{
        public static void main(String[] args) {
            /*
             * 在当前目录下创建a/b/c目录
             * 
             */
            File dir = new File("a"+File.separator+"b"+File.separator+"c");
            
            if(!dir.exists()){
                dir.mkdirs();
            }
            
            System.out.println(dir.exists());
        }
    }

    4. delete方法

    在删除目录时要特别注意:需要保证此为空目录才可以成功删除(目录中不能含有任何子项)。
    5. listFiles方法

    File的listFiles方法用于返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。其方法定义:
    File[] listFiles()
    返回值:抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。

    class FileDemo7{
        public static void main(String[] args) {
            /*
             * 输出当前目录下的所有子项
             */
            File dir =new File(".");
            if(dir.isDirectory()){
                //获取当前目录下的所有子项
                File[] subs =dir.listFiles();
                for(File sub : subs){
                    /*
                     * File 提供一个方法用于获取文件或目录的名字
                     * String getName()
                     */
                    if(sub.isFile()){
                        System.out.println("文件"+ sub.getName());
                    }else{
                        System.out.println("目录"+ sub.getName());
                        
                    }
                    
                }
            }    
        }
    }

    6. FileFilter接口

    通过listFiles方法我们可以获取一个目录下的所有子项,但有些时候我们并不希望获取全部子项,而是想获取部分满足我们实际需求的子项时,我们可以使用File的重载方法:
    File[] listFiles(FileFilter filter)
    这里我们看到,该重载方法 要求我们传入一个参数,其类型是FileFilter。什么是FileFilter呢? FileFilter是用于抽象路径名的过滤器,说白了就是定义一个规律规则,那么结合listFiles方法,我们就可以将满足此过滤规则的子项返回,其他则忽略。
    FileFilter是一个接口,所以当我们需要定义某种过滤规则时,我们可以定义一个类来实现这个接口,而此接口的实例可传递给 File 类的 listFiles(FileFilter) 方法。
    例如:

    File[] list = dir.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.getName().startsWith(".");
        }
    }); 
    /**
     * 获取一个目录下满足条件的子项
     * @author Administrator
     *
     */
    class FileDemo9{
        public static void main(String[] args) {
            /*
             * 获取当前目录下所有的文本文件
             * 目标:获取名字是以txt结尾的
             */
            File dir = new File(".");
            FileFilter filter = new FileFilter() {
                
                
                /**
                 * 文件过滤器
                 */
    
                @Override
                public boolean accept(File file) {
                    /*
                     * 该方法是用来检查参数File是否符合要求的、
                     * 符合返回true
                     */
                    System.out.println("过滤子项:"+file.getName());
                    return file.getName().endsWith(".txt");
                }
            };
            /*
             * 重载的listFile 方法
             * File[] listFile(FileFilter filter)
             * 返回当前目录下满足给定过滤器条件的子项
             */
            File[] subs= dir.listFiles(filter);
            for(File sub: subs){
                System.out.println(sub.getName());
            }
        }
    }

    该方法的参数FileFilter实例的accept方法并进行过滤,listFiles方法会将所有accept方法返回true的子项保留并返回。这个例子里我们会将dir中子项的名字以"."开头的返回。

  • 相关阅读:
    pyspark 知识点
    pyspark 读取csv文件创建DataFrame的两种方法
    iOS开发改变字符串中指定字符颜色,大小等等
    iOS开发解决页面滑动返回跟scrollView左右划冲突
    iOS开发自定义试图切换
    iOS开发UIColor,CGColor,CIColor三者的区别和联系
    iOS开发热更新JSPatch
    Swift-创建UIButton(其他UI组件雷同)
    Swift-枚举enum理解
    Swift-闭包理解(二)
  • 原文地址:https://www.cnblogs.com/manue1/p/4497824.html
Copyright © 2011-2022 走看看