欢迎光临
我们一直在努力

java files常用方法

Java文件常用方法包括创建、读取、写入、删除等操作。

Java中的Files类是java.nio.file包下的一个工具类,它提供了一些用于文件和目录操作的静态方法,这些方法都是基于NIO(New Input/Output)的,相比于传统的IO操作,NIO更加高效、灵活,下面我们来详细介绍一下Files类中常用的方法。

1、创建文件或目录

创建文件可以使用Files类的createFile()方法,创建目录可以使用createDirectory()方法,这两个方法都接受一个Path对象作为参数,表示要创建的文件或目录的路径,如果文件或目录已经存在,那么这两个方法都会抛出FileAlreadyExistsException异常。

示例代码:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FilesDemo {
    public static void main(String[] args) {
        Path filePath = Paths.get("test.txt");
        Path dirPath = Paths.get("testDir");
        try {
            Files.createFile(filePath);
            Files.createDirectory(dirPath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2、读取文件内容

Files类提供了readAllBytes()、readAllLines()、readAllChars()等方法,用于读取文件的内容,这些方法都接受一个Path对象和一个Charset对象作为参数,表示要读取的文件的路径和字符集,返回值是一个字节数组、字符串列表或字符数组,分别对应于文件的全部内容、所有行的内容和所有字符的内容。

示例代码:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class FilesDemo {
    public static void main(String[] args) {
        Path filePath = Paths.get("test.txt");
        try {
            byte[] bytes = Files.readAllBytes(filePath);
            String content = new String(bytes, StandardCharsets.UTF_8);
            System.out.println("文件内容:" + content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3、写入文件内容

Files类提供了write()、writeAllBytes()、writeAllLines()等方法,用于将内容写入文件,这些方法都接受一个Path对象和一个字节数组、字符串列表或字符串作为参数,表示要写入的文件的路径和内容,如果文件不存在,那么这些方法都会创建一个新文件;如果文件已存在,那么这些方法都会覆盖原有内容。

示例代码:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class FilesDemo {
    public static void main(String[] args) {
        Path filePath = Paths.get("test.txt");
        String content = "Hello, world!";
        List<String> lines = List.of("Line 1", "Line 2", "Line 3");
        byte[] bytes = content.getBytes(StandardCharsets.UTF_8);
        byte[] allBytes = linesToBytes(lines);
        try {
            Files.write(filePath, content.getBytes(StandardCharsets.UTF_8)); // 覆盖原有内容
            Files.write(filePath, allBytes); // 覆盖原有内容,写入多行内容
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                Files.write(filePath, bytes); // 覆盖原有内容,写入单行内容
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    private static byte[] linesToBytes(List<String> lines) {
        return lines.stream().map(line -> line + System.lineSeparator()).collect(Collectors.joining()).getBytes(StandardCharsets.UTF_8);
    }
}

4、删除文件或目录

Files类提供了delete()、deleteIfExists()等方法,用于删除文件或目录,这些方法都接受一个Path对象作为参数,表示要删除的文件或目录的路径,如果文件或目录不存在,那么这些方法都不会执行任何操作;如果文件或目录存在,那么这些方法都会删除它们,deleteIfExists()方法还会返回一个布尔值,表示是否成功删除了文件或目录。

示例代码:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javafx.scene.control.*; // 引入ComboBox控件所需的库,这里以JavaFX为例,实际项目中可以根据需求选择其他库或自定义控件实现类似功能。
赞(0) 打赏
未经允许不得转载:九八云安全 » java files常用方法

评论 抢沙发