Java List 写入 TXT 文件
在 Java 中,将 List 写入 TXT 文件有几种常见方法,以下是几种实现方式:

方法1:使用 Files.write() (Java 7+)
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
public class ListToTxt {
public static void main(String[] args) {
List<String> lines = Arrays.asList("第一行", "第二行", "第三行");
try {
Files.write(Paths.get("output.txt"), lines);
System.out.println("文件写入成功!");
} catch (IOException e) {
System.err.println("写入文件时出错: " + e.getMessage());
}
}
}
方法2:使用 BufferedWriter
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class ListToTxt {
public static void main(String[] args) {
List<String> lines = Arrays.asList("第一行", "第二行", "第三行");
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
for (String line : lines) {
writer.write(line);
writer.newLine(); // 添加换行符
}
System.out.println("文件写入成功!");
} catch (IOException e) {
System.err.println("写入文件时出错: " + e.getMessage());
}
}
}
方法3:使用 PrintWriter
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;
public class ListToTxt {
public static void main(String[] args) {
List<String> lines = Arrays.asList("第一行", "第二行", "第三行");
try (PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) {
for (String line : lines) {
writer.println(line); // 自动添加换行符
}
System.out.println("文件写入成功!");
} catch (IOException e) {
System.err.println("写入文件时出错: " + e.getMessage());
}
}
}
方法4:处理自定义对象列表
List 中存储的是自定义对象,需要先转换为字符串:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + "," + age;
}
}
public class ObjectListToTxt {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("张三", 25),
new Person("李四", 30),
new Person("王五", 28)
);
try (BufferedWriter writer = new BufferedWriter(new FileWriter("people.txt"))) {
for (Person person : people) {
writer.write(person.toString());
writer.newLine();
}
System.out.println("文件写入成功!");
} catch (IOException e) {
System.err.println("写入文件时出错: " + e.getMessage());
}
}
}
注意事项
- 文件路径:确保程序有写入指定路径的权限
- 异常处理:始终处理可能出现的 IOException
- 资源关闭:使用 try-with-resources 语句确保文件流被正确关闭
- 编码问题:如果处理中文,建议指定编码:
Files.write(Paths.get("output.txt"), lines, StandardCharsets.UTF_8);或
new OutputStreamWriter(new FileOutputStream("output.txt"), "UTF-8")
方法可以根据你的具体需求选择使用,Files.write() 方法在 Java 7 及以上版本中是最简洁的选择。

