Java中File类概述和构造方法、创建功能、判断和获取功能及删除功能

简介: File类概述和构造方法、创建功能、判断和获取功能及删除功能的简单示例

一、File类概述和构造方法

File类介绍:

● 它是文件和目录路径名的抽象表示

● 文件和目录是可以通过File封装成对象的

● 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而以。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的

File类的构造方法:

方法名 说明
File(String pathname) 通过将给定的路径名字字符串转换为抽象路径名来创建新的File实例
File(String parent,String child) 从父路径名字字符串和子路径名字字符串创建新的File实例
File(File parent,String child) 从父抽象路径名和子路径字符串创建新的File实例

实例代码:

public class FileDemo01 { 
    public static void main(String[] args) { 
        //File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例。 
        File f1 = new File("E:\\itcast\\java.txt"); 
        System.out.println(f1); 
        //File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例。
        File f2 = new File("E:\\itcast","java.txt"); 
        System.out.println(f2); 
        //File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。 
        File f3 = new File("E:\\itcast"); 
        File f4 = new File(f3,"java.txt"); 
        System.out.println(f4); 
    } 
}

image.gif

二、File类创建功能

方法分类:

方法名 说明
public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件
public boolean mkdir() 创建由此抽象路径名命名的目录
public boolean mkdirs() 创建由此抽象路径命名的目录,包括任何必需但不存在的父目录

示例代码:

public class FileDemo02 { 
    public static void main(String[] args) throws IOException { 
        //需求1:我要在E:\\itcast目录下创建一个文件java.txt 
        File f1 = new File("E:\\itcast\\java.txt"); 
        System.out.println(f1.createNewFile()); 
        System.out.println("--------"); 
        //需求2:我要在E:\\itcast目录下创建一个目录JavaSE 
        File f2 = new File("E:\\itcast\\JavaSE"); 
        System.out.println(f2.mkdir()); 
        System.out.println("--------"); 
        //需求3:我要在E:\\itcast目录下创建一个多级目录JavaWEB\\HTML 
        File f3 = new File("E:\\itcast\\JavaWEB\\HTML"); 
        // System.out.println(f3.mkdir()); 
        System.out.println(f3.mkdirs()); 
        System.out.println("--------");
        //需求4:我要在E:\\itcast目录下创建一个文件javase.txt 
        File f4 = new File("E:\\itcast\\javase.txt"); 
        // System.out.println(f4.mkdir()); 
        System.out.println(f4.createNewFile()); 
    } 
}

image.gif

三、File类判断和获取功能

判断功能:

方法名 说明
public boolean isDirectory() 测试此抽象路径名表示的File是否为目录
public boolean isFile() 测试此抽象路径名表示的File是否为文件
public boolean exists() 测试此抽象路径名表示的File是否存在

获取功能:

方法名 说明
public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
public String getPath() 将此抽象路径名转换为路径名字符串
public String getName() 返回由此抽象路径名表示的文件或目录的名称
public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles() 返回此抽象路径名称表示的目录中的文件和目录的File对象数组

示例代码:

public class FileDemo04 { 
    public static void main(String[] args) { 
        //创建一个File对象 
        File f = new File("myFile\\java.txt"); 
        // public boolean isDirectory():测试此抽象路径名表示的File是否为目录 
        // public boolean isFile():测试此抽象路径名表示的File是否为文件 
        // public boolean exists():测试此抽象路径名表示的File是否存在 
        System.out.println(f.isDirectory()); 
        System.out.println(f.isFile()); 
        System.out.println(f.exists()); 
        // public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串 
        // public String getPath():将此抽象路径名转换为路径名字符串 
        // public String getName():返回由此抽象路径名表示的文件或目录的名称 
        System.out.println(f.getAbsolutePath()); 
        System.out.println(f.getPath()); 
        System.out.println(f.getName()); 
        System.out.println("--------"); 
        // public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
        // public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组 
        File f2 = new File("E:\\itcast"); 
        String[] strArray = f2.list(); 
        for(String str : strArray) { 
            System.out.println(str); 
        }
        System.out.println("--------"); 
        File[] fileArray = f2.listFiles(); 
        for(File file : fileArray) { 
            // System.out.println(file); 
            // System.out.println(file.getName()); 
            if(file.isFile()) { 
                System.out.println(file.getName()); 
            }
        } 
    } 
}

image.gif

四、File类删除功能

方法分类:

方法名 说明
public boolean delete() 删除由此抽象路径名表示的文件或目录

示例代码:

public class FileDemo03 { 
    public static void main(String[] args) throws IOException { 
//         File f1 = new File("E:\\itcast\\java.txt"); 
        //需求1:在当前模块目录下创建java.txt文件 
        File f1 = new File("myFile\\java.txt"); 
         System.out.println(f1.createNewFile()); 
        //需求2:删除当前模块目录下的java.txt文件 
        System.out.println(f1.delete()); 
        System.out.println("--------"); 
        //需求3:在当前模块目录下创建itcast目录 
        File f2 = new File("myFile\\itcast"); 
        System.out.println(f2.mkdir()); 
        //需求4:删除当前模块目录下的itcast目录 
        System.out.println(f2.delete()); 
        System.out.println("--------"); 
        //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt 
        File f3 = new File("myFile\\itcast"); 
        System.out.println(f3.mkdir()); 
        File f4 = new File("myFile\\itcast\\java.txt");    
        System.out.println(f4.createNewFile());
        //需求6:删除当前模块下的目录itcast 
        System.out.println(f4.delete()); 
        System.out.println(f3.delete()); 
    } 
}

image.gif

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

● 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件,例如:E:\itcast\java.txt

● 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\java.txt

目录
相关文章
|
17天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
41 17
|
9天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
13天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
53 4
|
13天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
31 2
|
18天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
Java判断某时间是否在一个时间段
Java判断某时间是否在一个时间段
|
11天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
20天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
7天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
27 9
|
10天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####