File类(Java)

本文介绍了Java中File类的基本概念,包括File类的作用、实现的接口、实例不可变性,以及File类的构造方法。此外,还概述了几个重要的成员方法,如获取绝对路径、判断文件/目录存在、创建/删除文件/目录以及遍历目录下的文件。通过这些方法,可以对文件和目录进行操作。

目录

1、File类定义

2、File类构造方法(常用摘要)

3、练习

4、主要成员方法


1、File类定义

 1)File类主要是JAVA为文件这块的操作(如删除新增等)而设计的相关类。

 2)File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较。

 3)File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。

 4)File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作。

重点词需记:file(文件),directory(文件夹),path(路径)

2、File类构造方法(常用摘要)

1)File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

public class Test2
{
 
 public static void main(String[] args)
{
     File file=new File("xxx");
 
    System.out.println(file.getPath());  //路径结果就是xxx
}
}

2)File(File parent, String child):通过parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

  • 若子路径child为Null,会抛出NullPointerException空异常错误
  • 当父路径为Null时,会以子路径child作为绝对路径创建实例,等同于调用第一个File(String child )效果一样
public class Test2
{
 
 public static void main(String[] args)
{
     String parent=null;
     
     File file=new File(parent,"xxx");
 
    System.out.println(file.getPath());  //路径结果就是xxx
}
}
  •  当父路径不为空时,会以父路径作为目录,子路径作为父路径下的目录或者文件名,最后得到的实例对象的路径就是父路径和子路径的组合
public class Test2
{
 
    public static void main(String[] args)
    {
        String parent = "E:/test";
        
        File parentFile= new File(parent);
 
        String child = "E:/test/1.txt";
 
        File file = new File(parentFile, child);
 
        System.out.println(file.getPath()); // 路径结果就是E:\test\E:\test\1.txt
    }
}

3)File(String parent, String child):通过parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

public class Test2
{
 
    public static void main(String[] args)
    {
        String parent = "E:/test";
        
        File parentFile= new File(parent);
 
        String child = "E:/test/1.txt";
 
        File file = new File(parentFile, child);
 
        System.out.println(file.getPath()); // 路径结果就是E:\test\E:\test\1.txt
    }
}

3、练习

import java.io.File;

public class Lianxi {

    public static void main(String[] args){
    
        File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat"); //第一种方式。
        System.out.println(file.getPath()); //getPath()返回该file的路径。
        
        file=new File(new File("E:\\网易有道词典\\Youdao"),"Dict\\guid.dat"); //第二种方式。
        System.out.println(file.getPath());‘
        
        file=new File("E:\\网易有道词典\\Youdao\\Dict","guid.dat"); //第三种方式。
        System.out.println(file.getPath());
    }
}

输出:
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat

4、主要成员方法

1)获取的方法 (方法摘要)
 String   getAbsolutePath()
          返回此抽象路径名的绝对路径名字符串。
 String   getName()
          返回由此抽象路径名表示的文件或目录的名称。
 String   getPath()
          将此抽象路径名转换为一个路径名字符串。
 long   length()
          返回由此抽象路径名表示的文件的长度。

//获取文件绝对路径
private static void show04() {
     File file=new File("F:\\04Java\\19java");
     File absoluteFile=file.getAbsoluteFile();//返回File对象的绝对路径
     System.out.println(absoluteFile);
     File file2=new File("a.txt");
     File absoluteFile2=file2.getAbsoluteFile();//返回File对象的绝对路径
     System.out.println(absoluteFile2);
     System.out.println("____________________________");
}
//file1.getName()  获取最后一个路径名
private static void show02(){
     File file=new File("F:\\04Java\\19java");
     String name=file.getName();//最后的路径名
     System.out.println(name);
 
     File file1=new File("F:\\04Java\\19java\\小小张自由");
     String name1=file1.getName();//最后的路径名
     System.out.println(name1);
}
//file.getPath()  构造函数中传递什么值,就返回什么值
private static void show01(){
     File file=new File("F:\\04Java\\19java");
     String path=file.getPath();//传递的参数是什么,返回值就是什么
     System.out.println(path);
     File file1=new File("b.txt");
     String path1=file1.getPath();
     System.out.println(path1);
}
 //file.length() 获取文件的大小
private static void show03(){
     File file=new File("F:\\迅雷下载\\AirtestIDE-win-1.2.6.zip");
     long length=file.length();//文件名的大小,路径错误则为0
     System.out.println(length);//单位字节
}

2)判断的方法(方法摘要)
 boolean    exists()
          测试此抽象路径名表示的文件或目录是否存在
 boolean    isDirectory()
          测试此抽象路径名表示的文件是否是一个目录。
 boolean    isFile()
          测试此抽象路径名表示的文件是否是一个标准文件。

//用于判断构造函数中给定的路径是否为目录、文件
public static void main(String[] args){
	File file = new File("F:\\04Java\\19java");
	System.out.println(file.exists());//判断文件名是否存在
	System.out.println(file.isDirectory());//判断是否以文件夹结尾
	System.out.println(file.isFile());//判断是否以文件结尾
}

3)创建删除的方法(方法摘要)
 boolean    createNewFile()
          当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
 boolean    delete()
          删除此抽象路径名表示的文件或目录。
 boolean    mkdir()
          创建此抽象路径名指定的目录。
 boolean    mkdirs()
          创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

//File类中CreateNewFile()方法只能新建文件,创建成功true
private static void show01()throws IOException{
    File file=new File("F:\\04Java\\19java\\99.txt");
    boolean newFile=file.createNewFile();//只能新建文件,创建成功true
    System.out.println(newFile);
}
//File类中Delete()方法
private static void show03(){
    File file=new File("F:\\04Java\\19java\\HelloJava");
    boolean delete=file.delete();//可以删除文件夹只能是空文件夹
    System.out.println(delete);
 
    File file1=new File("F:\\04Java\\19java\\99.txt");
    boolean delete1=file1.delete();//可以删除文件
    System.out.println(delete1);
    }
//File类中mkdir()和mkdirs()的方法创建单级、多级目录
private static void show02(){
    File file=new File("F:\\04Java\\19java\\HelloJava");
    boolean mkdir=file.mkdir();//创建单级目录
    System.out.println(mkdir);
    File file1=new File("F:\\04Java\\19java\\Hello\\Java");
    boolean mkdirs=file1.mkdirs();//创建多级目录
    System.out.println(mkdirs);
}

4)目录的遍历(方法摘要)

String[]   list() 
     返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

        <1>当实例对象代表的是文件不是目录时,返回NUll对象

        <2> 获取的是该目录下的文件名和目录名,并不包含该目录名称和其上级目录名称

       <3> 字符串数组中都是文件名或目录名并不是路径名

        <4> 字符串中的元素并不是按照实际系统中目录下的顺序排列的

File[]   listFiles() 
     返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

//file.listFiles();方法返回值是一个File[]
private static void show02(){
    File file=new File("F:\\04Java\\19java");
    File[]files=file.listFiles();
    for(File file1:files){
        System.out.println(file1);
    }
}
 
//file.list();方法返回值是一个String[]
private static void show01(){
    File file=new File("F:\\04Java\\19java");
    String[] list=file.list();
    System.out.println(list);//地址值
    for(String i:list){
        System.out.println(i);
    }
}

注意:构造函数只是创建一个File实例,并没有以文件做读取等操作,因此路径即使是错误的,也可以创建实例不报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值