当前位置:首页 > Java

java中如何保存文件

2026-04-09 08:11:04Java

使用 FileOutputStream 保存文件

FileOutputStream 是 Java 中最基础的字节流写入方式,适用于二进制文件或文本文件。通过创建 FileOutputStream 对象并调用 write 方法写入数据。

import java.io.FileOutputStream;
import java.io.IOException;

public class FileSaveExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        String filePath = "output.txt";

        try (FileOutputStream fos = new FileOutputStream(filePath)) {
            fos.write(data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 FileWriter 保存文本文件

FileWriter 是字符流写入方式,专门用于文本文件。相比字节流,它更高效且能正确处理字符编码。

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

public class FileSaveExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        String filePath = "output.txt";

        try (FileWriter writer = new FileWriter(filePath)) {
            writer.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 BufferedWriter 提高性能

BufferedWriter 包装了 FileWriter,通过缓冲区减少磁盘 I/O 次数,适合频繁写入或大文件场景。

java中如何保存文件

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

public class FileSaveExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        String filePath = "output.txt";

        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            writer.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 Files 类(Java 7+)

Java NIO 的 Files 类提供了简洁的写入方法,如 write() 可一次性写入字节或行集合。

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

public class FileSaveExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        String filePath = "output.txt";
        List<String> lines = Arrays.asList("Line 1", "Line 2");

        try {
            // 写入字符串
            Files.write(Paths.get(filePath), data.getBytes());

            // 写入多行
            Files.write(Paths.get("lines.txt"), lines);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

处理路径和目录

确保目标目录存在,可使用 Files.createDirectories() 创建父目录。

java中如何保存文件

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;

public class FileSaveExample {
    public static void main(String[] args) {
        String filePath = "path/to/output.txt";

        try {
            Files.createDirectories(Paths.get(filePath).getParent());
            Files.write(Paths.get(filePath), "Data".getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

追加写入文件

通过 FileWriter 或 Files 的追加模式实现内容追加而非覆盖。

// FileWriter 追加模式
try (FileWriter writer = new FileWriter("output.txt", true)) {
    writer.append("\nAdditional text");
}

// Files 追加模式(Java 7+)
Files.write(
    Paths.get("output.txt"), 
    "\nAppended".getBytes(), 
    StandardOpenOption.APPEND
);

异常处理最佳实践

推荐使用 try-with-resources 自动关闭资源,并对 IOException 进行适当处理。

try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("output.txt"))) {
    writer.write("Content");
} catch (IOException e) {
    System.err.println("Error writing file: " + e.getMessage());
}

分享给朋友:

相关文章

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java版本如何查看

java版本如何查看

查看Java版本的命令行方法 在命令行或终端中运行以下命令可以查看当前安装的Java版本: java -version 输出示例: java version "1.8.0_301" Java(TM…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…