txt如何java
读取和写入文本文件的方法
在Java中处理文本文件(.txt)主要涉及文件的读取和写入操作。以下是几种常见的方法:
使用FileReader和BufferedReader读取文件
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
String path = "example.txt";
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用FileWriter和BufferedWriter写入文件
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
String path = "output.txt";
try (BufferedWriter bw = new BufferedWriter(new FileWriter(path))) {
bw.write("Hello, World!");
bw.newLine();
bw.write("This is a sample text.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Files类简化操作
Java 7引入了Files类,可以更简洁地处理文本文件:
读取文件内容
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class ReadFileWithFiles {
public static void main(String[] args) throws IOException {
List<String> lines = Files.readAllLines(Paths.get("example.txt"));
for (String line : lines) {
System.out.println(line);
}
}
}
写入文件内容
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class WriteFileWithFiles {
public static void main(String[] args) throws IOException {
List<String> lines = Arrays.asList("First line", "Second line");
Files.write(Paths.get("output.txt"), lines);
}
}
处理大型文件
对于大型文本文件,建议使用流式处理以避免内存问题:
流式读取大型文件
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.stream.Stream;
public class StreamReadFile {
public static void main(String[] args) {
String path = "largefile.txt";
try (Stream<String> stream = Files.lines(Paths.get(path))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
字符编码处理
指定字符编码可以避免乱码问题:
指定UTF-8编码读取文件
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class ReadFileWithEncoding {
public static void main(String[] args) throws IOException {
List<String> lines = Files.readAllLines(
Paths.get("example.txt"),
StandardCharsets.UTF_8
);
lines.forEach(System.out::println);
}
}
异常处理最佳实践
使用try-with-resources语句确保资源被正确关闭:
安全的文件操作

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class SafeFileRead {
public static void main(String[] args) {
String path = "example.txt";
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
br.lines().forEach(System.out::println);
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
}
这些方法涵盖了Java中处理文本文件的主要场景,从基础读写到高级流处理,并考虑了编码和异常处理等实际问题。






