Java文件读写I/O操作教程

Java文件读写I/O操作教程

Java中的文件输入输出(I/O)操作是处理文件读写的基础功能。本教程将逐步介绍如何使用Java标准库实现文件读写,适合初学者入门。我们将使用java.io包中的类(如FileReaderFileWriterBufferedReaderBufferedWriter),以及Java 7引入的java.nio.file包(如Files类)来简化操作。所有代码示例均使用Java 8+语法。

1. 文件读操作(读取文件内容)

读取文件涉及打开文件、读取数据并关闭资源。推荐使用BufferedReader来高效读取文本文件。

步骤:

  • 创建File对象指定文件路径。
  • 使用FileReader包装文件。
  • 使用BufferedReader提高读取效率。
  • 逐行读取内容。
  • 使用try-with-resources自动关闭资源(避免资源泄漏)。

示例代码:读取一个文本文件(例如example.txt)并打印内容:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 文件路径,例如当前目录下的文件

        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line); // 打印每一行
            }
        } catch (IOException e) {
            System.err.println("读取文件出错: " + e.getMessage());
        }
    }
}

  • 解释:此代码使用try-with-resources确保文件流自动关闭。BufferedReader.readLine()方法读取一行内容,返回null时表示文件结束。
2. 文件写操作(写入内容到文件)

写入文件涉及创建或覆盖文件、写入数据并保存。推荐使用BufferedWriter来高效写入文本。

步骤:

  • 创建File对象指定文件路径。
  • 使用FileWriter包装文件(可设置是否追加模式)。
  • 使用BufferedWriter提高写入效率。
  • 写入数据(例如字符串)。
  • 使用try-with-resources自动关闭资源。

示例代码:写入内容到文件(例如output.txt),如果文件存在则覆盖:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteFileExample {
    public static void main(String[] args) {
        String filePath = "output.txt"; // 文件路径
        String content = "Hello, Java I/O!\nThis is a test."; // 要写入的内容

        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            writer.write(content); // 写入整个字符串
            System.out.println("文件写入成功!");
        } catch (IOException e) {
            System.err.println("写入文件出错: " + e.getMessage());
        }
    }
}

  • 解释FileWriter默认覆盖文件内容。如果需要追加内容,使用new FileWriter(filePath, true)BufferedWriter.write()方法写入字符串。
3. 使用NIO.2简化操作(Java 7+推荐)

Java 7引入了Files类(在java.nio.file包中),提供更简洁的文件读写方法。它自动处理资源关闭,适合简单操作。

示例代码:读取文件(使用Files.readAllLines):

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

public class NioReadExample {
    public static void main(String[] args) {
        Path path = Paths.get("example.txt"); // 文件路径

        try {
            List<String> lines = Files.readAllLines(path);
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.err.println("读取文件出错: " + e.getMessage());
        }
    }
}

示例代码:写入文件(使用Files.write):

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

public class NioWriteExample {
    public static void main(String[] args) {
        Path path = Paths.get("output.txt"); // 文件路径
        List<String> content = Arrays.asList("Line 1", "Line 2", "Line 3"); // 要写入的内容列表

        try {
            Files.write(path, content); // 写入内容,覆盖文件
            System.out.println("文件写入成功!");
        } catch (IOException e) {
            System.err.println("写入文件出错: " + e.getMessage());
        }
    }
}

4. 常见问题与提示
  • 文件路径:使用相对路径(如"data.txt")或绝对路径(如"C:\\files\\data.txt")。Windows路径注意转义反斜杠(\\)。
  • 异常处理:始终处理IOException,避免程序崩溃。
  • 性能优化:对于大文件,使用BufferedReader/BufferedWriter比直接读写更高效。
  • 文件类型:本教程针对文本文件(.txt)。对于二进制文件(如图片),使用FileInputStreamFileOutputStream
  • 资源管理:优先使用try-with-resources(Java 7+特性),防止资源泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值