Java File类构造器和常用方法说明

Java File类

概述

  • java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关
  • File能新建、删除、重命名文件和目录,但不能访问文件内容本身,访问文件内容本身,需要使用输入/输出流
  • 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个对象,可能没有一个真实存在的文件或目录
  • File对象可以作为参数传递给流的构造器

常用构造器

  • public File(String pathname)
package www.bh.c.filetest;
import java.io.File;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        File file1 = new File("hello.txt");//相对路径
        File file2 = new File("E:\\Test\\calss\\he.txt");//绝对路径
    }
}
  • public File(String parent,String child):以parent为父路径,child为子路径创建File对象
package www.bh.c.filetest;
import java.io.File;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        File file = new File("E:\\Test\\calss", "java");
        System.out.println(file);//E:\Test\calss\java
    }
}
  • public File(File parent,String child):根据一个父File对象和子文件夹路径创建File对象
package www.bh.c.filetest;
import java.io.File;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        File file = new File("E:\\Test\\calss", "java");
        System.out.println(file);
        File file1 = new File(file, "hi.txt");
        System.out.println(file1);//E:\Test\calss\java\hi.txt
    }
}

路径

  • 绝对路径:是一个固定的路径,从盘符开始
  • 相对路径:是相对于某个位置开始的
  • 路径分隔符:windows和DOS系统默认使用“\”来表示,UNIX和URL使用“/”来表示
  • Java中File类提供了一个常量:separator
package www.bh.c.filetest;
import java.io.File;

public class Test1 {
    
    
    public static void main(String[] args) {
    
    
        File file1 = new File("hello.txt");
        File file2 = new File("E:\\Test\\calss\\he.txt");
        File file3 = new File("E:"+File.separator+"Test"+File.separator+"calss"+File.separator+"he.txt");
    }
}

常用方法

  • File类的获取功能

    • public String getAbsolutePath():获取绝对路径
    • public String getPath():获取路径
    • public String getName():获取名称
    • public String getParent():获取上层文件目录路径,若无,返回null
    • public long length():获取文件长度(即:字节数);不能获取目录的长度
    • public long lastModified():获取最后一次的修改时间,毫秒值
    package www.bh.c.filetest;
    import java.io.File;
    import java.util.Date;
    
    public class Test1 {
          
          
        public static void main(String[] args) {
          
          
            File file = new File("hello.txt");
            File file1 = new File("E:\\Test\\calss\\hi.txt");
            System.out.println(file.getAbsolutePath());//E:\Test\hello.txt(和项目在同一个路径下)
            System.out.println(file.getPath());//hello.txt
            System.out.println(file.getName());//hello.txt
            System.out.println(file.getParent());//null
            System.out.println(file.length());//0
            System.out.println(file.lastModified());//0
            System.out.println("====================");
            System.out.println(file1.getAbsolutePath());//E:\Test\calss\hi.txt
            System.out.println(file1.getPath());//E:\Test\calss\hi.txt
            System.out.println(file1.getName());//hi.txt
            System.out.println(file1.getParent());//E:\Test\calss
            System.out.println(file1.length());//0
            System.out.println(new Date(file1.lastModified()));//Thu Jan 01 08:00:00 CST 1970
        }
    }
    
    • public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
    package www.bh.c.filetest;
    import java.io.File;
    
    public class Test2 {
          
          
        public static void main(String[] args) {
          
          
            File file = new File("E:\\Test\\calss\\src\\www\\bh\\c");
            String[] list = file.list();
            for (String s:list){
          
          
                System.out.println(s);
            }
        }
    }
    
    • public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
    package www.bh.c.filetest;
    import java.io.File;
    
    public class Test2 {
          
          
        public static void main(String[] args) {
          
          
            File file = new File("E:\\Test\\calss\\src\\www\\bh\\c");
            File[] files = file.listFiles();
            for (File f:files){
          
          
                System.out.println(f);
            }
        }
    }
    
  • File类的重命名功能

    • public boolean renameTo(File dest):把文件重命名为指定的文件路径
package www.bh.c.filetest;
import java.io.File;
//file.renameTo(file2)中:需要返回true时,需要file在硬盘中是存在的,且file1不能再硬盘中存在
public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        File file = new File("hello.txt");
        File file1 = new File("E:\\Test\\calss\\hi.txt");
        boolean b = file.renameTo(file);
        System.out.println(b);
    }
}
  • File类的判断功能
    • public boolean isDirectory():判断是否是文件目录
    • public boolean isFile():判断是否是文件
    • public boolean exists():判断是否存在
    • public boolean canRead():判断是否可读
    • public boolean canWrite():判断是否可写
    • public boolean isHidden():判断是否隐藏
package www.bh.c.filetest;
import java.io.File;

public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        File file = new File("hello.txt");
        File file1 = new File("E:\\Test\\calss\\hi.txt");
        System.out.println(file.isDirectory());//false
        System.out.println(file.isFile());//true
        System.out.println(file.exists());//true
        System.out.println(file.canRead());//true
        System.out.println(file.canWrite());//true
        System.out.println(file.isHidden());//false
    }
}
package www.bh.c.filetest;
import java.io.File;

public class Test3 {
    
    
    public static void main(String[] args) {
    
    
        File file = new File("hello.txt");
        file=new File("hello1.txt");
        System.out.println(file.isDirectory());//false
        System.out.println(file.isFile());//false
        System.out.println(file.exists());//false
        System.out.println(file.canRead());//false
        System.out.println(file.canWrite());//false
        System.out.println(file.isHidden());//false
    }
}
  • File类的创建功能

    • public boolean createNewFile():创建文件,若文件存在,则不创建,返回false
    package www.bh.c.filetest;
    import java.io.File;
    import java.io.IOException;
    
    public class Test4 {
          
          
        public static void main(String[] args) throws IOException {
          
          
            File file = new File("hello.txt");
            if (!file.exists()){
          
          //文件不存在
                file.createNewFile();
                System.out.println("创建成功");
            }else {
          
          //文件存在
                file.delete();
                System.out.println("删除成功");
            }
        }
    }
    
    • public boolean mkdir():创建文件目录,如果此目录存在,则不创建;如果此目录的上层目录不存在,也不创建

    • public boolean mkdirs():创建文件目录,如果上层文件目录不存在,则一并创建

    • 如果在创建文件或者文件目录时没有写盘符路径,那默认在项目路径下

    package www.bh.c.filetest;
    import java.io.File;
    
    public class Test5 {
          
          
        public static void main(String[] args) {
          
          
            File file = new File("E:\\Test\\calss\\he");
            boolean mkdir = file.mkdir();
            if (mkdir){
          
          
                System.out.println("创建成功");
            }
            System.out.println("=============");
            File file1 = new File("E:\\Test\\calss\\she");
            boolean mkdir1 = file1.mkdir();
            if (mkdir1){
          
          
                System.out.println("创建成功");
            }
        }
    }
    
  • File类的删除功能

    • public boolean delete():删除文件或者文件夹
    • 删除一个文件目录,需要该文件目录内不包含文件或者文件目录
  • 总结:

    • File类的一个对象,代表一个文件或一个文件目录(即:文件夹)
    • File类声明在java.io包下
    • File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,须使用IO流来完成
    • 后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”

猜你喜欢

转载自blog.csdn.net/insist_to_learn/article/details/110488438