java.nio.Files使用

本文介绍了Java NIO中对文件的基本操作,包括创建文件、创建目录、复制和删除文件,以及读写文件等。通过示例代码展示了如何使用`java.nio.file.Files`类进行文件操作,包括检查文件是否存在、读取文件内容、写入文件以及设置文件权限等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、java.nio.Files知识体系

在这里插入图片描述

二、代码

package nio;

import com.sun.jndi.toolkit.url.Uri;

import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;

public class FilesTest {
    public static void main(String[] args) throws URISyntaxException, IOException {
        System.out.println(System.getProperty("user.dir"));

        // 1、创建类
        // 1.1 创建文件
        File newFile = new File(System.getProperty("user.dir") + "\\src" + "\\output" + "\\newFile.txt");
        if (!Files.exists(newFile.toPath())) {
            Files.createFile(newFile.toPath());
        }

        // 1.2 创建文件夹
        File newDirectory = new File(System.getProperty("user.dir") + "\\src" + "\\output" + "\\newDirectory");
        if (!Files.exists(newDirectory.toPath())) {
            Files.createDirectory(newDirectory.toPath());
            newDirectory.setExecutable(true);
            newDirectory.setReadable(true);
            newDirectory.setWritable(true);
        }

        // 2、操作类

        // 2.1 将文件复制到目标文件
        Path inputPath = Paths.get(System.getProperty("user.dir") + "\\src" + "\\input" + "\\test.txt");
        Path outputPath = Paths.get(System.getProperty("user.dir") + "\\src" + "\\output" + "\\test.txt");
        Files.copy(inputPath, outputPath, StandardCopyOption.REPLACE_EXISTING);

        // 2.2复制文件
        File inputFile = new File(System.getProperty("user.dir") + "\\src" + "\\input" + "\\test.txt");
        File outputFile = new File(System.getProperty("user.dir") + "\\src" + "\\output" + "\\test2.txt");
        if (!Files.exists(outputFile.toPath())) {
            java.nio.file.Files.copy(inputFile.toPath(), outputFile.toPath());
        }

        // 2.3删除文件
        File toBeDeletedFile = new File(System.getProperty("user.dir") + "\\src" + "\\output" + "\\test2.txt");
        Files.delete(toBeDeletedFile.toPath());
        Files.deleteIfExists(toBeDeletedFile.toPath());

        // 3、读写类
        // 3.1 读取文件
        byte[] bytes = Files.readAllBytes(inputPath);
        List<String> lines = Files.readAllLines(inputPath);
        List<String> lineList = Files.readAllLines(inputPath, Charset.forName("UTF-8"));

        // 3.2写文件
        Files.write(outputPath, lines, StandardCharsets.UTF_8);

        // 4、判断类
        Files.exists(inputPath);
        Files.isDirectory(newDirectory.toPath());
        Files.isExecutable(inputPath);
        Files.isHidden(inputPath);
        Files.isReadable(inputPath);
        Files.isSymbolicLink(inputPath);
        Files.notExists(inputPath);
        Files.isWritable(inputPath);
        Files.size(inputPath);

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值