java如何保存文件
保存文件的基本方法
使用 FileOutputStream 或 Files.write() 方法可以将数据保存到文件。以下是两种常见方式的示例代码:
1. 使用 FileOutputStream
适用于二进制数据或字节流的写入。
import java.io.FileOutputStream;
import java.io.IOException;
public class SaveFileExample {
public static void main(String[] args) {
String data = "Hello, World!";
String filePath = "example.txt";
try (FileOutputStream fos = new FileOutputStream(filePath)) {
fos.write(data.getBytes());
System.out.println("文件保存成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 使用 Files.write()
适用于文本数据,更简洁(需 Java 7+)。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
import java.util.Arrays;
public class SaveFileExample2 {
public static void main(String[] args) {
List<String> lines = Arrays.asList("第一行", "第二行");
String filePath = "example.txt";
try {
Files.write(Paths.get(filePath), lines);
System.out.println("文件保存成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
处理不同数据类型
- 文本数据:直接使用字符串或
List<String>配合Files.write()。 - 二进制数据:通过
FileOutputStream写入字节数组(如图片、PDF等)。
路径与异常处理
- 绝对路径:直接指定完整路径(如
C:/temp/file.txt)。 - 相对路径:相对于项目根目录或当前工作目录。
- 异常处理:务必捕获
IOException,避免程序因文件权限或路径问题崩溃。
追加内容到文件
若需追加而非覆盖,使用 Files.write() 时添加 StandardOpenOption.APPEND:
import java.nio.file.StandardOpenOption;
Files.write(
Paths.get("example.txt"),
"追加内容".getBytes(),
StandardOpenOption.APPEND
);
第三方库简化操作
使用 Apache Commons IO 可以进一步简化文件操作:
import org.apache.commons.io.FileUtils;
FileUtils.writeStringToFile(
new File("example.txt"),
"保存的内容",
StandardCharsets.UTF_8
);
需在项目中添加依赖:

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>






