Java中的File类(精简版)

28 篇文章 0 订阅
26 篇文章 0 订阅

1.File类的概述

File类:它是文件和目录路径名的抽象表示。

2.File类的构造方法

//第一种(最常用):File(String pathname);该处的参数所表示的文件可以存在也可以不存在。
//举例
File file = new File("E:\\filedemo\\test.txt");
System.out.println(file);//输出E:\\filedemo\\test.txt,说明File类重写了toString方法

//第二种:File(String parent,String child)
File file1 = new File("E:\\filedemo", "test.txt");
System.out.println(file1);//E:\\filedemo\\test.txt

//第三种:File(File parent,String child)
 File file2 = new File("E:\\filedemo");
 File file3 = new File(file2, "test.txt");
 System.out.println(file3);//E:\\filedemo\\test.txt

3.File类的创建功能

/**
 * File类的创建功能:
 * createNewFile() 创建新的空文件
 * mkdir() 创建目录
 * mkdirs() 可以创建多级目录
 */

//createNewFile() 创建新的空文件
File file = new File("E:\\filedemo\\test.txt");
System.out.println(file.createNewFile());//存在不创建返回false;不存在创建返回true

//mkdir() 创建目录
File file1 = new File("E:\\filedemo\\filetest");
System.out.println(file1.mkdir());//成功返回true

//mkdirs() 可以创建多级目录
File file2 = new File("E:\\filedemo\\javaweb\\html");
System.out.println(file2.mkdirs());//成功返回true

注意事项

  1. 不存在创建返回true;存在不创建返回false。
  2. 创建时需调对方法。若创文件时调用创建目录的方法,则会将文件名作为目录名创建。
  3. 若同级目录下文件名和目录名一致,也会导致创建失败。

4.File类判断和获取功能

File file = new File("java.txt");//将java.txt提前创建在项目目录下,与src同级目录
方法名返回值
file.isDirectory()是不是目录(false)
file.isFile()是不是文件(true)
file.exists()是否存在(true)
file.getAbsoluteFile()返回绝对路径即全路径
file.getPath()返回相对路径
file.getName()获取文件名称
File file1 = new File("E:\\javaweb");//在E盘下创建javaweb目录,再往该目录下添加文件和目录
String[] list = file1.list();
for (String s : list) {
     System.out.println(s);//拿到所有文件或目录的名称
}

File[] files = file1.listFiles();
for (File file2 : files) {
     //System.out.println(file2);//拿到所有文件和目录的绝对路径
     if (file2.isDirectory()){
          System.out.println(file2.getName());//拿到该目录下所有目录的名称
     }
}

5.File类删除功能

删除功能

delete();//删除文件和目录

注意事项

  1. 删除的文件或目录的路径需要事先确定,并检查无误。
  2. 删除的时候需要先将某个目录下的内容(文件或目录)删除,再删除该目录,否则导致删除失败。

6.习题练习

需求

给定一个目录的路径,该目录下有文件和目录,要求遍历该目录下的所有文件,并输出每个文件的绝对路径。

分析

  1. 要输出该目录下每个文件的绝对路径需要用到listfiles(),getAbsoluteFile();
  2. 该目录下有文件和目录,需要进行判断,如果是目录,目录中也有文件,则需要使用递归;如果是文件,直接输出绝对路径。

代码解答

import java.io.File;
/**
   需求:给定一个路径(E:\\javaweb),该目录下有文件和目录,要求遍历该目录下的所有文件内容,并输出每个文    件的绝对路径。
 */
public class FileDemo{
    public static void main(String[] args) {
        File file = new File("E:\\javaweb");
        getAllFilePath(file);
    }
    public static void getAllFilePath(File file){
        File[] files = file.listFiles();
        if (files != null){
            for (File file1 : files) {
                if (file1.isDirectory()){//如果是目录
                    getAllFilePath(file1);//递归调用
                }else{
                    System.out.println(file1.getAbsoluteFile());//得到所有文件内容的绝对路径
                }
            }
        }
    }
}

### 回答1: Java 11的新特性有: 1. 去除了Java EE和CORBA模块,以精简Java平台。 2. 新增了全新的HTTP客户端API,使得构建和发送HTTP请求更加简单。 3. 对String的增强,支持诸如isBlank()、strip()、repeat()等方法。 4. 全新的Loom(织布机)项目,支持多线程编程。 5. 增强的JEP 330:Launch Single-File Source-Code Programs,支持从命令行直接运行Java程序。 6. 支持在Windows平台使用AArch64(ARM64)架构。 7. 引入了更好的ZGC(Z Garbage Collector)垃圾收集器,提高了Java应用程序的内存管理效率。 8. 可以直接将本地库文件链接到Java代码,减少了JNI(Java Native Interface)的使用难度。 这仅是Java 11的一些主要特性,希望这些信息能对您有所帮助。 ### 回答2: Java 11 是 Java 编程语言的一个重要版本升级,它带来了许多令人兴奋的新特性。以下是一些 Java 11 的新特性: 1. Epsilon 垃圾收集器:Epsilon 是一个实验性的垃圾收集器,它可以在不进行任何垃圾回收操作的情况下运行 Java 应用程序,对于某些性能关键的应用程序非常有用。 2. ZGC 收集器:ZGC 是一种可伸缩的低延迟垃圾收集器,可在数毫秒内处理几十 TB 的堆内存。它大大降低了垃圾收集带来的停顿时间,适用于需要快速响应和稳定性高的应用程序。 3. HTTP 客户端(标准库):Java 11 引入了一个全新的 HTTP 客户端 API,它提供了一种简单、灵活和异步的方式来发送 HTTP 请求和处理响应。此 API 支持 HTTP/1.1 和 HTTP/2,并支持 WebSocket。 4. 动态文件常量:Java 11 引入了一个新的字节码指令,用于表示动态生成的的常量。这一特性为动态语言的 JVM 编程提供了更好的支持。 5. 移除模块:Java 9 引入了模块系统,而 Java 11 移除了一些不再使用的模块。这使得 Java 平台更加精简和易于维护。 6. 单文件执行程序:Java 11 引入了一种新的执行 Java 程序的方式,使用单个文件直接运行 Java 代码,不需要编译成 class 文件。 7. 支持 Unicode 10.0:Java 11 支持 Unicode 最新版本 10.0,包括新的字符、Emoji 和语言字符的支持。 总的来说,Java 11 的新特性增强了性能、安全性和功能上的各个方面,为开发人员提供了更好的工具和功能来构建高效、可靠和安全的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值