java 如何保存文件
使用 FileOutputStream 保存文件
通过 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)) {
byte[] bytes = data.getBytes();
fos.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 BufferedWriter 保存文本文件
对于文本文件,使用 BufferedWriter 可以提高写入效率。

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class SaveTextFile {
public static void main(String[] args) {
String content = "This is a text file.";
String filePath = "textfile.txt";
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Files 类(Java 7+)
Java 7 引入了 Files 类,提供了更简洁的文件操作方法。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class SaveWithFiles {
public static void main(String[] args) {
String content = "Content using Files class";
String filePath = "files_example.txt";
try {
Files.write(Paths.get(filePath), content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
追加内容到已有文件
如果需要向已有文件追加内容而不是覆盖,可以在 FileWriter 构造函数中设置 append 参数为 true。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class AppendToFile {
public static void main(String[] args) {
String additionalContent = "\nAppended line";
String filePath = "existing_file.txt";
try (BufferedWriter writer = new BufferedWriter(
new FileWriter(filePath, true))) {
writer.write(additionalContent);
} catch (IOException e) {
e.printStackTrace();
}
}
}
保存对象到文件(序列化)
使用 ObjectOutputStream 可以将 Java 对象序列化后保存到文件。
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Person implements Serializable {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
public class SaveObject {
public static void main(String[] args) {
Person person = new Person("Alice", 30);
String filePath = "person.ser";
try (ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream(filePath))) {
oos.writeObject(person);
} catch (IOException e) {
e.printStackTrace();
}
}
}






