当前位置:首页 > Java

java如何同磁盘交互

2026-03-18 13:23:35Java

Java 与磁盘交互的方法

Java 提供了多种方式与磁盘进行交互,包括文件读写、目录操作、文件系统监控等。以下是常见的实现方法:

文件读写操作

使用 java.iojava.nio 包中的类进行文件读写:

java如何同磁盘交互

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.BufferedReader;

// 写入文件
File file = new File("example.txt");
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
    writer.write("Hello, World!");
}

// 读取文件
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
}

使用 NIO(New I/O)包

java.nio.file 提供了更现代的文件操作方式:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

Path path = Paths.get("example.txt");

// 写入文件
Files.write(path, "Hello, NIO!".getBytes());

// 读取文件
List<String> lines = Files.readAllLines(path);
lines.forEach(System.out::println);

目录操作

创建、删除和遍历目录:

java如何同磁盘交互

import java.io.File;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;

// 创建目录
File dir = new File("mydir");
dir.mkdir();

// 遍历目录
Path dirPath = Paths.get("mydir");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dirPath)) {
    for (Path entry : stream) {
        System.out.println(entry.getFileName());
    }
}

文件属性操作

获取和修改文件属性:

import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;

Path filePath = Paths.get("example.txt");
BasicFileAttributes attrs = Files.readAttributes(filePath, BasicFileAttributes.class);

System.out.println("Creation time: " + attrs.creationTime());
System.out.println("Size: " + attrs.size());

// 修改文件时间
Files.setLastModifiedTime(filePath, FileTime.fromMillis(System.currentTimeMillis()));

文件系统监控

使用 WatchService 监控文件系统变化:

import java.nio.file.*;

Path dir = Paths.get("mydir");
WatchService watchService = FileSystems.getDefault().newWatchService();
dir.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);

WatchKey key;
while ((key = watchService.take()) != null) {
    for (WatchEvent<?> event : key.pollEvents()) {
        System.out.println("Event kind: " + event.kind() + ". File affected: " + event.context());
    }
    key.reset();
}

注意事项

  • 使用 try-with-resources 语句确保资源正确关闭。
  • 处理 IOException 以应对可能的文件操作错误。
  • 对于大文件,使用缓冲流或 NIO 以提高性能。
  • 考虑文件路径的跨平台兼容性,使用 Paths.get()File.separator

标签: 磁盘java
分享给朋友:

相关文章

java如何输出

java如何输出

输出到控制台 使用 System.out.println() 方法输出内容到控制台,适用于调试或简单信息展示。 示例代码: System.out.println("Hello, World!")…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…