如何读写java文件
读取Java文件
使用java.io包中的FileReader和BufferedReader类可以高效读取文本文件内容。BufferedReader提供了逐行读取的方法,适合处理大文件。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
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();
}
}
}
写入Java文件
通过FileWriter和BufferedWriter实现文件写入。BufferedWriter提供write()方法写入内容,newLine()方法添加换行符。使用try-with-resources确保资源自动关闭。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
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 sample text.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
处理二进制文件
对于非文本文件(如图片或视频),需使用FileInputStream和FileOutputStream以字节流形式读写。以下示例复制二进制文件:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BinaryFileCopy {
public static void main(String[] args) {
String sourcePath = "source.jpg";
String destPath = "copy.jpg";
try (FileInputStream fis = new FileInputStream(sourcePath);
FileOutputStream fos = new FileOutputStream(destPath)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用NIO包(Java 7+)
java.nio.file包提供更简洁的API。Files.readAllLines()可一次性读取所有行,Files.write()直接写入内容,适合小文件操作。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;
public class NIOFileRead {
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();
}
}
}
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.Arrays;
public class NIOFileWrite {
public static void main(String[] args) {
String filePath = "output.txt";
try {
Files.write(Paths.get(filePath),
Arrays.asList("Line 1", "Line 2"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
异常处理建议
文件操作必须处理IOException。推荐使用try-with-resources语法自动管理资源,避免手动关闭流导致的资源泄漏。对于大文件,避免一次性读取全部内容,改用流式处理。






