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

原文地址:https://www.cnblogs.com/zhuobo/p/10650779.html