java 如何读写文件
读取文件
使用 java.nio.file.Files 和 java.nio.file.Paths 可以方便地读取文件内容。以下是一个读取文本文件的示例:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try {
String content = new String(Files.readAllBytes(Paths.get("example.txt")));
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
逐行读取文件可以使用 Files.lines 方法:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.stream.Stream;
public class ReadFileLineByLine {
public static void main(String[] args) {
try (Stream<String> stream = Files.lines(Paths.get("example.txt"))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
写入文件
使用 Files.write 方法可以方便地将内容写入文件:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
String content = "Hello, World!";
try {
Files.write(Paths.get("output.txt"), content.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
追加内容到文件可以使用 Files.write 并指定 StandardOpenOption.APPEND:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.io.IOException;
public class AppendToFile {
public static void main(String[] args) {
String content = "Appended text";
try {
Files.write(Paths.get("output.txt"), content.getBytes(), StandardOpenOption.APPEND);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用传统的 FileReader 和 FileWriter
对于较旧的 Java 版本,可以使用 FileReader 和 FileWriter:
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
public class TraditionalFileIO {
public static void main(String[] args) {
// 读取文件
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入文件
try (FileWriter fw = new FileWriter("output.txt")) {
fw.write("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
处理二进制文件
对于二进制文件,可以使用 FileInputStream 和 FileOutputStream:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BinaryFileIO {
public static void main(String[] args) {
// 读取二进制文件
try (FileInputStream fis = new FileInputStream("input.bin")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
// 处理读取的数据
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入二进制文件
try (FileOutputStream fos = new FileOutputStream("output.bin")) {
byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // "Hello" 的二进制表示
fos.write(data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上方法涵盖了 Java 中常见的文件读写操作,适用于不同场景的需求。






