• File类


    File类

    静态成员变量:

    static String pathSeparator:与系统有关的路径分隔符号(Windows分号(;)linux冒号(:))
    statci char pathSeparator:与系统有关的路径分隔符号
    
    static String separator:与系统有关的默认名称分隔符(Windows反斜杠()linux正斜杠(/))
    static String separator:与系统有关的默认名称分隔符
    

    注意:这些分隔符号在编程的时候都不应该写死了,用法哦分隔符号调用这两个即可,交给JVM决定是正斜杠还是反斜杠

    路径

    • 绝对路径:以盘符开始的,以根目录开始的
    • 相对路径相:相对于当前项目的根目录

    File类的构造方法

    1. File(String pathname):通过给定路径名创建一个File类的实例

    参数pathname:

    • 可以以文件结尾,也可以以文件夹结尾
    • 路径可以是相对路径也可以是绝对路径
    • 路径可以存在,也可以不存在
    • 创建File对象,只是将路径名字符串pathname封装为File对象,不考虑路径的真假情况
    1. File(String parent, String child):

    参数:路径为两部分,父路径和子路径

    • 使用起来灵活,两个都可以变化
    1. File(File parent, String child):

      参数:和上一个构造方法类路径分为两部分,但是第一个parent是File类型的

    成员方法:

    1. 与获取功能相关的方法

    成员方法 作用
    public String getAbsolutePath() 返回该File对象的绝对路径,不管它是由相对路径还是绝对路径构造的
    public String getPath() 将该File对象转化为路径名字符串,获取的就是构造方法中的路径
    public String getName() 返回由此File对象表示的文件或者目录名称
    public long length() 返回由此File对象表示的文件的长度(字节为单位,不能获取文件夹大小,返回0)
    package cn.zhuobo.day13.file;
    
    import java.io.File;
    
    public class Demo01File {
        public static void main(String[] args) {
            String s = File.pathSeparator;
            System.out.println(s);
            System.out.println(File.separator);
            System.out.println(File.separator);
    
            File file = new File("/home/zhuobo/Desktop");
    
            File f1 = new File("/home/zhuobo/Desktop/b.txt");
            System.out.println(f1.getAbsoluteFile());
            System.out.println(f1.getPath());//
    
            File f2 = new File("a.txt");// 相对当前项目的根目录而言
            System.out.println(f2.getAbsoluteFile());// /home/zhuobo/Documents/java_pragram/basic-code/a.txt
            System.out.println(f2.getPath());
    
            System.out.println(f1.getName());// b.txt
            System.out.println(f2.getName());// a.txt
    
            System.out.println(f1.length());// 630
            System.out.println(f2.length());// 不存在的文件返回0
        }
    }
    

    2. 与判断相关的方法

    成员方法 作用
    public boolean exists() 判断File对象表示稳的文件或者目录是否存在
    public boolean isDirectory() 判断File对象是否是目录
    public boolean isFile() 判断File对象是否为文件
    package cn.zhuobo.day13.file;
    
    import java.io.File;
    
    public class Demo02File {
        public static void main(String[] args) {
            File f1 = new File("/home/zhuobo/Desktop/b.txt");
            System.out.println(f1.exists());
            
            if(f1.exists()) {
                System.out.println(f1.isDirectory());
                System.out.println(f1.isFile());
            }
        }
    }
    

    3. 与创建删除相关的方法

    成员方法 作用
    public boolean createNewFile() 当且仅当具有该名称的文件不存在时,创建一个新的空文件,路径不存在就抛出异常
    public boolean delete() 删除后由此File对象表示的文件或者目录,直接删除,不经过回收站
    public boolean mkdir() 创建此File对象表示的目录
    public boolean midirs() 创建由此File对象表示的目录,包括任何必须但是不存在的父目录
    package cn.zhuobo.day13.file;
    
    import java.io.File;
    import java.io.IOException;
    
    public class Demo03File {
        public static void main(String[] args) throws IOException {
            // 创建文件
            File file = new File("/home/zhuobo/Desktop/a.txt");
            System.out.println(file.exists());// 文件路径是一个不存在的文件
            System.out.println(file.createNewFile());// 创建一个文件 true,文件不存在就创建,否则返回false
            System.out.println(file.exists());// 现在该文件存在了 true
    
            // 创建目录
            File file1 = new File("/home/zhuobo/Desktop/aaa");
            boolean b = file1.mkdir();
    
            File file2 = new File("/home/zhuobo/Desktop/saa/bbb/ccc");
            file2.mkdirs();// 创建多级文件夹
    
            file.delete();// 直接删除,不经过回收站
            file1.delete();
        }
    }
    

    4. 遍历目录的方法

    成员方法 作用
    public String[] list() 返回一个String数组,表示该File目录中的所有子文件或者目录,可以获得隐藏的文件,目录,如果该File表示的文件不存在或者不是一个目录,那么就会抛出空指针异常
    public File[] listFiles() 返回一个File数组,表示该File目录中所有的子文件或者目录,作用和上一个方法类似,只是封装为File对象
    package cn.zhuobo.day13.file;
    
    import java.io.File;
    
    public class Demo04File {
        public static void main(String[] args) {
            File file1 = new File("/home/zhuobo/Desktop");
            String[] str = file1.list();
            for (String s : str) {
                System.out.println(s);
            }
            System.out.println("=====================================");
            File[] files = file1.listFiles();
            for (File file : files) {
                System.out.println(file);
            }
        }
    }
    
    .a.cpp.swp
    .a.cpp.swo
    b.txt
    saa
    =====================================
    /home/zhuobo/Desktop/.a.cpp.swp
    /home/zhuobo/Desktop/.a.cpp.swo
    /home/zhuobo/Desktop/b.txt
    /home/zhuobo/Desktop/saa
    
    
  • 相关阅读:
    python_Opencv_使用Matplotlib模块
    django中同源策略和跨域解决方案
    ES6常用语法
    django之页面缓存
    django组件之ContentType
    我的博客园设置
    rest_framework 之版本控制
    rest_framework 之分页器
    在django项目中手动模拟实现settings的配置
    rest_framework之url控制器详解
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10650779.html
Copyright © 2020-2023  润新知