【Java基础 | IO流】File类概述和常用方法使用

简介: 【Java基础 | IO流】File类概述和常用方法使用

File类


一、File类的概述和构造方法


public class File

extends Object

implements Serializable, Comparable< File>

File:它是文件目录路径的抽象表示


用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:


一个可选的与系统有关的前缀 字符串,比如盘符,“/” 表示 UNIX 中的根目录,“\\” 表示 Microsoft Windows UNC 路径名。

零个或更多字符串名称 的序列。

抽象路径名中的第一个名称是目录名,对于 Microsoft Windows UNC 路径名则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。空 抽象路径名没有前缀和名称序列。


构造方法:


方法

说明

File(File parent, String child)

根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String pathname)

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

File(String parent, String child)

根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

File(URI uri)

通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。


代码示例:


package com.ithmm_01;
import java.io.File;
public class FileDemo01 {
    public static void main(String[] args) {
        //File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
        File f1 = new File("E:\\ithmm\\java.txt");
        System.out.println(f1);//重写了toString方法
        //File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
        File f2 = new File("E\\ithmm\\java.txt");
        System.out.println(f2);
        //File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
        File f3 = new File("E:\\ithmm");
        File f4 = new File(f3,"java.txt");
    }
}


二、File类创建功能


方法名

说明

boolean createNewFile()

当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

boolean mkdir()

创建此抽象路径名指定的目录。

boolean mkdirs()

创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。


代码示例:


//需求1:在E\\ithmm目录下创建一个文件java.txt"
        File f1 = new File("E:\\ithmm\\java.txt");
        System.out.println(f1.createNewFile());


控制台输出:true



如果文件不存在就创建文件并返回true,如果文件存在就不创建文件,返回false


/需求2:在E\\ithmm目录下创建一个目录JavaSE
        File f2 = new File("E:\\ithmm\\JavaSE");
        System.out.println(f2.mkdir());


控制台输出:true



如果目录不存在就创建文件并返回true,如果目录存在就不创建文件,返回false


//需求3:在E\\ithmm目录下创建一个多级目录JavaWEB\\HTML
        File f3 = new File("E:\\ithmm\\JavaWeb\\HTML");
        System.out.println(f3.mkdirs());




如果目录不存在就创建文件并返回true,如果目录存在就不创建文件,返回false


注意:创建文件就应该使用创建文件的方法,创建目录就必须使用创建目录的方法


三、File类创建和获取功能


方法名

说明

boolean isDirectory()

测试此抽象路径名表示的文件是否是一个目录。

boolean isFile()

测试此抽象路径名表示的文件是否是一个标准文件。

boolean exists()

测试此抽象路径名表示的文件或目录是否存在。

String getAbsolutePath()

返回此抽象路径名的绝对路径名字符串。

String getPath()

将此抽象路径名转换为一个路径名字符串。

String getName()

返回由此抽象路径名表示的文件或目录的名称。

String[] list()

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

File[] listFiles()

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


代码示例:


package com.ithmm_01;
import java.io.File;
public class FileDemo03 {
    public static void main(String[] args) {
        //创建一个File对象
        File  f= new File("Io\\java.txt");
        // boolean isDirectory() | 测试此抽象路径名表示的文件是否是一个目录。
        //  boolean isFile() |  测试此抽象路径名表示的文件是否是一个标准文件。
        // boolean exists() | 测试此抽象路径名表示的文件或目录是否存在。
        System.out.println(f.isDirectory());//false
        System.out.println(f.isFile());//true
        System.out.println(f.exists());//true
        // String getAbsolutePath() |返回此抽象路径名的绝对路径名字符串。
        //  String getPath() |将此抽象路径名转换为一个路径名字符串。
        // String getName() |返回由此抽象路径名表示的文件或目录的名称。
        System.out.println(f.getAbsoluteFile());//E:\ideaTest\Io\java.txt
        System.out.println(f.getPath());//Io\java.txt
        System.out.println(f.getName());//java.txt
        //  String[] list() |返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
        // File[] listFiles() |返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
        File f2 = new File("E:\\ithmm");
        String[] list = f2.list();
        for(String s : list){
            //System.out.println(s);
            //java.txt
            //java.txt
            //JavaSE
            //JavaWeb
        }
        File[ ] fileArrays = f2.listFiles();
        for(File file : fileArrays){
//            System.out.println(file.getName());
//            System.out.println(file);
            if(file.isFile()){
                System.out.println(file.getName());
            }
        }
    }
}


四、File类的删除功能


方法

说明

boolean delete()

删除此抽象路径名表示的文件或目录。


绝对路径和相对路径的区别


绝对路径:完整的路径名,不需要任何的其他信息就可以定位它所表示的文件。

相对路径:必须使用取自其他路径的信息进行解释。

删除目录的注意事项:


如果一个目录中有内容(目录,文件),不能直接删除。应该先删除该目录下的内容,最后删除该目录


代码示例:


package com.ithmm_01;
import java.io.File;
import java.io.IOException;
public class FileDemo04 {
    public static void main(String[] args) throws IOException {
        //需求1:在当前模块目录下创建java.txt 文件
        File f =  new File("Io\\java.txt");
        //需求2:删除当前模块目录下的java.txt 文件
        System.out.println(f.delete());
        //需求3:在当前模块目录下创建ithmm目录
        File f2 = new File("Io\\ithmm");
       // System.out.println(f2.mkdir());
        System.out.println(f2.delete());
        //需求4:在当前模块目录下创建ithmm,然后在该目录下创建一个文件java.txt
        File f3 = new File("Io\\ithmm");
        System.out.println(f3.mkdir());
        File f4 = new File("Io\\ithmm\\java.txt");
        System.out.println(f4.createNewFile());
        //需求6:删除当前目录ithmm,首先要删除该目录下的文件
        System.out.println(f4.delete());
        System.out.println(f3.delete());
    }
}


目录
相关文章
|
4月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
204 4
|
4月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
372 18
|
4月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
272 5
|
4月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
261 1
|
4月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
236 1
|
4月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
335 1
|
4月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
249 1
【JAVA学习之路 | 进阶篇】集合框架概述
【JAVA学习之路 | 进阶篇】集合框架概述
|
设计模式 缓存 网络协议
Java NIO学习(一):Java NIO概述
IO 的操作方式通常分为几种:同步阻塞 BIO、同步非阻塞 NIO、异步非阻塞 AIO。
331 0
Java NIO学习(一):Java NIO概述
|
Java Android开发 Windows
java基础学习_概述_day01总结
======================================================================================================================================================...
1970 0