【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());
    }
}


目录
相关文章
|
2天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
|
19天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
41 17
|
11天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
15天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
16天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
34 2
|
20天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
24天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
27 3
|
6月前
|
存储 Java
【JAVA学习之路 | 进阶篇】集合框架概述
【JAVA学习之路 | 进阶篇】集合框架概述
|
设计模式 缓存 网络协议
Java NIO学习(一):Java NIO概述
IO 的操作方式通常分为几种:同步阻塞 BIO、同步非阻塞 NIO、异步非阻塞 AIO。
158 0
Java NIO学习(一):Java NIO概述
|
Java Android开发 Windows
java基础学习_概述_day01总结
======================================================================================================================================================...
1824 0
下一篇
无影云桌面