当前位置:首页 > 后端开发 > 正文

Java怎么保存和打开txt文件?

在Java中保存txt文件,通常使用 FileWriter或 BufferedWriter配合 File类实现文本写入,打开文件则通过 FileReader或 BufferedReader逐行读取内容,需注意异常处理(如 IOException)和资源关闭(推荐try-with-resources),示例代码简洁易用,适合基础文件操作。

在Java中保存和打开.txt文件是日常开发中的基础操作,下面详细介绍具体实现方法、最佳实践及完整代码示例,确保内容专业可靠,符合文件操作的核心规范(参考Oracle官方文档和Java API标准)。


保存TXT文件(写入数据)

Java提供多种类实现文本写入,核心步骤:创建文件→写入内容→关闭资源

使用 FileWriter + BufferedWriter(高效推荐)

import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class SaveTxtFile { public static void main(String[] args) { String filePath = "example.txt"; // 文件路径 String content = "Hello, Java!n这是第二行文本。"; // 写入内容 try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) { writer.write(content); // 写入内容 System.out.println("文件保存成功!"); } catch (IOException e) { System.err.println("保存失败: " + e.getMessage()); } } }

  • 优势:BufferedWriter 提供缓冲区,减少磁盘I/O次数,提升性能。
  • 注意:默认覆盖原文件;需追加内容用 new FileWriter(filePath, true)。

使用 Files 工具类(Java 7+ 简洁写法)

import java.nio.file.Files; import java.nio.file.Paths; import java.io.IOException; public class SaveWithFiles { public static void main(String[] args) { String path = "nio_example.txt"; String text = "使用Files类写入文本"; try { Files.write(Paths.get(path), text.getBytes()); // 直接写入字节 System.out.println("文件已保存"); } catch (IOException e) { e.printStackTrace(); } } }

  • 优势:代码简洁,自动处理资源关闭。


打开TXT文件(读取数据)

读取文本文件需注意字符编码(默认UTF-8)和异常处理

Java怎么保存和打开txt文件? 第1张

使用 BufferedReader(逐行读取)

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadTxtFile { public static void main(String[] args) { String filePath = "example.txt"; try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; System.out.println("文件内容:"); while ((line = reader.readLine()) != null) { // 逐行读取 System.out.println(line); } } catch (IOException e) { System.err.println("读取失败: " + e.getMessage()); } } }

使用 Files.readAllLines()(快速读取小文件)

import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.io.IOException; public class ReadWithFiles { public static void main(String[] args) { String path = "example.txt"; try { List<String> lines = Files.readAllLines(Paths.get(path)); for (String line : lines) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }

  • 适用场景:文件较小时使用(大文件可能内存溢出)。


关键注意事项

  1. 字符编码

    中文或特殊字符需显式指定编码(如UTF-8):

  2. 异常处理

    必须捕获 IOException,推荐 try-with-resources(自动关闭资源,避免泄漏)。

  3. 文件路径

    • 相对路径:基于项目根目录(如 "data.txt")。
    • 绝对路径:完整路径(如 "C:/folder/file.txt"),注意Linux/Windows路径分隔符差异。
    • 性能优化

      • 大文件读写:用 BufferedReader/BufferedWriter 减少I/O次数。
      • 避免 Files.readAllLines() 处理超大文件。
      • 完整流程示例:保存并读取文件

        import java.io.*; public class TextFileDemo { public static void main(String[] args) { // 1. 保存文件 String path = "demo.txt"; saveToFile(path, "测试保存和读取nJava文件操作"); // 2. 读取文件 readFromFile(path); } static void saveToFile(String path, String content) { try (BufferedWriter writer = new BufferedWriter(new FileWriter(path))) { writer.write(content); System.out.println("> 保存成功"); } catch (IOException e) { System.err.println("保存异常: " + e.getMessage()); } } static void readFromFile(String path) { try (BufferedReader reader = new BufferedReader(new FileReader(path))) { System.out.println("> 文件内容:"); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.println("读取异常: " + e.getMessage()); } } }


        常见问题解决

        • 文件不存在?

          写入时会自动创建;读取前需检查 Files.exists(Paths.get(path))。

          Java怎么保存和打开txt文件? 第2张

        • 乱码问题?

          统一使用UTF-8编码,避免系统默认编码差异。

        • 权限错误?

          检查文件是否被其他程序占用,或Java进程是否有读写权限。

        • 通过 FileWriter、BufferedReader 等核心类,结合try-with-resources确保安全,即可高效处理文本文件,务必注意编码规范和异常场景,保障代码健壮性。

          引用说明:本文代码及规范参考自Oracle官方文档 Java I/O Tutorial 及Java API标准库说明,字符编码遵循UTF-8国际标准(RFC 3629),文件操作符合Java SE规范。

          Java怎么保存和打开txt文件? 第3张

0