【java基础】File操作详解

简介: 【java基础】File操作详解

Java的File类提供了用于操作文件系统的各种方法。以下是一些关于Java File类的基础知识:

创建新的文件

File file = new File("newfile.txt");  
if (file.createNewFile()) {  
    System.out.println("文件创建成功");  
} else {  
    System.out.println("文件已经存在");  
}

创建新的目录

File dir = new File("newdirectory");  
if (dir.mkdir()) {  
    System.out.println("目录创建成功");  
} else {  
    System.out.println("目录已经存在");  
}

删除文件或目录

File file = new File("file.txt");  
if (file.delete()) {  
    System.out.println("文件删除成功");  
} else {  
    System.out.println("文件删除失败");  
}

重命名文件或目录

File oldFile = new File("oldname.txt");  
File newFile = new File("newname.txt");  
if (oldFile.renameTo(newFile)) {  
    System.out.println("重命名成功");  
} else {  
    System.out.println("重命名失败");  
}

检查文件或目录是否存在

File file = new File("file.txt");  
if (file.exists()) {  
    System.out.println("文件存在");  
} else {  
    System.out.println("文件不存在");  
}

获取文件或目录的长度

File file = new File("file.txt");  
long length = file.length();  
System.out.println("文件长度: " + length + " bytes");

获取绝对路径

File file = new File("file.txt");  
String absolutePath = file.getAbsolutePath();  
System.out.println("绝对路径: " + absolutePath);

列出目录中的所有文件

注意:从Java 7开始,建议使用 listFiles() 方法。它返回一个包含目录中所有文件的 File 对象数组。这个方法返回 null 如果此目录不为目录,或者如果由于其他原因无法列出所有文件。此外,还需要处理 IOException。以下是示例代码:

File dir = new File("directory");  
File[] files = dir.listFiles();  
if (files != null) {  
    for (File file : files) {  
        System.out.println(file.getName());  
    }  
} else {  
    System.out.println("无法列出目录中的所有文件");  
}

实战代码如下

获取目录下所有文件

package com.croot.rims;


import com.croot.rims.dao.AttachmentinfoDao;
import com.croot.rims.dao.ProjectMapper;
import com.croot.rims.entity.Attachmentinfo;
import com.croot.rims.entity.story.request.MappingFiles;
import com.croot.rims.entity.story.request.StoreFiles;
import com.croot.rims.service.story.StoryService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RimsServerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SynchronizeAttachmentsTask {
 

    @Test
    public void test() {
        String basePath = "C:\\Users\\Administrator\\Desktop\\fsdownload";
        File dir = new File(basePath);

        List<File> allFileList = new ArrayList<>();

        // 判断文件夹是否存在
        if (!dir.exists()) {
            System.out.println("目录不存在");
            return;
        }

        getAllFile(dir, allFileList);

        for (File file : allFileList) {
            String fileName = file.getName();
      System.out.println(fileName);

        }
        System.out.println("该文件夹下共有" + allFileList.size() + "个文件");

    }
    public static void getAllFile(File fileInput, List<File> allFileList) {
        // 获取文件列表
        File[] fileList = fileInput.listFiles();
        assert fileList != null;
        for (File file : fileList) {
            if (file.isDirectory()) {
                // 递归处理文件夹
                // 如果不想统计子文件夹则可以将下一行注释掉
                getAllFile(file, allFileList);
            } else {
                // 如果是文件则将其加入到文件数组中
                allFileList.add(file);
            }
        }
    }

}


目录
相关文章
|
6天前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
20 0
|
2天前
|
安全 Java 程序员
在Java中,finalization是一种机制,允许对象在被垃圾收集器回收之前执行一些清理操作。
【6月更文挑战第24天】Java中的finalization机制允许对象在被垃圾收集前执行清理,以释放系统资源或处理敏感信息。`finalize()`方法用于定义此类操作,但它不是可靠的资源管理策略,因为调用时机不确定且可能影响性能。尽管可用于清理外部资源或作为保护措施,但应避免依赖finalization,而应优先采用手动资源管理,遵循“创建者负责”原则。
8 1
|
5天前
|
Java 索引
从干将莫邪的故事说起--java比较操作注意要点
从干将莫邪的故事说起--java比较操作注意要点
|
6天前
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
11 2
|
7天前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
12 3
|
7天前
|
算法 搜索推荐 Java
二叉树的基本概念、常见操作以及如何使用Java代码
二叉树的基本概念、常见操作以及如何使用Java代码
10 1
|
1天前
|
Java 机器人 程序员
Java中的文件I/O操作:流、读写和NIO详解
Java中的文件I/O操作:流、读写和NIO详解
|
2天前
|
Java
java操作list使用Stream
java操作list使用Stream
4 0
|
2天前
|
Java API 开发者
Java中的文件I/O操作:流、读写和NIO详解
Java中的文件I/O操作:流、读写和NIO详解
|
2天前
|
算法 Java
Java数据结构与算法:位运算之位移操作
Java数据结构与算法:位运算之位移操作