java如何txt文件
读取文本文件内容
使用 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 br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入文本文件内容
使用 BufferedWriter 或 FileWriter 将内容写入文本文件:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteTxtFile {
public static void main(String[] args) {
String filePath = "output.txt";
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
bw.write("Hello, World!");
bw.newLine();
bw.write("This is a new line.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
追加内容到文本文件
在 FileWriter 构造函数中设置 append 参数为 true,避免覆盖原文件:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class AppendToTxtFile {
public static void main(String[] args) {
String filePath = "output.txt";
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath, true))) {
bw.write("Appended line.");
bw.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Java NIO 读取文件
Java NIO 提供 Files 类,可以更简洁地读取文件内容:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class ReadTxtWithNIO {
public static void main(String[] args) {
String filePath = "example.txt";
try {
List<String> lines = Files.readAllLines(Paths.get(filePath));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Java NIO 写入文件
Files.write() 方法可以快速写入内容到文件:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
public class WriteTxtWithNIO {
public static void main(String[] args) {
String filePath = "output.txt";
List<String> lines = Arrays.asList("Line 1", "Line 2", "Line 3");
try {
Files.write(Paths.get(filePath), lines);
} catch (IOException e) {
e.printStackTrace();
}
}
}
检查文件是否存在
在读取或写入文件前,可以使用 Files.exists() 检查文件是否存在:

import java.nio.file.Files;
import java.nio.file.Paths;
public class CheckFileExists {
public static void main(String[] args) {
String filePath = "example.txt";
boolean exists = Files.exists(Paths.get(filePath));
System.out.println("File exists: " + exists);
}
}
处理大文件
对于大文件,逐行读取避免内存不足问题:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadLargeTxtFile {
public static void main(String[] args) {
String filePath = "large_file.txt";
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
// 处理每一行数据
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Scanner 读取文件
Scanner 类可以方便地解析文本文件:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadTxtWithScanner {
public static void main(String[] args) {
String filePath = "example.txt";
try (Scanner scanner = new Scanner(new File(filePath))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
处理不同编码的文本文件
如果文件不是 UTF-8 编码,可以使用 InputStreamReader 指定编码:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class ReadTxtWithEncoding {
public static void main(String[] args) {
String filePath = "example.txt";
try (BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream(filePath), StandardCharsets.ISO_8859_1))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}






