Java文件读写可通过java.io和java.nio包实现,常用FileReader/FileWriter处理文本,BufferedReader/BufferedWriter提升大文件读写效率,Files类简化操作,二进制文件使用FileInputStream/FileOutputStream,推荐try-with-resources确保资源释放。
在Java中实现文件读写操作,主要依赖于
java.io
和
java.nio
包中的类。针对不同场景,可以选择合适的类来完成文本或二进制文件的读写。以下是一个实用且结构清晰的文件读写项目实现方式。
使用FileWriter和FileReader读写文本文件
适用于简单的字符数据读写,适合处理小文本文件。
写入文件示例:
try (FileWriter writer = new FileWriter(“output.txt”)) {
writer.write(“Hello, Java File Writing!”);
} catch (IOException e) {
e.printStackTrace();
}
读取文件示例:
立即学习“Java免费学习笔记(深入)”;
try (FileReader reader = new FileReader(“output.txt”)) {
int ch;
while ((ch = reader.read()) != -1) {
System.out.print((char) ch);
}
} catch (IOException e) {
e.printStackTrace();
}
使用BufferedWriter和BufferedReader提升效率
带缓冲的流能显著提高读写性能,尤其适合处理大文本文件。
写入示例:
try (BufferedWriter bw = new BufferedWriter(new FileWriter(“data.txt”))) {
bw.write(“第一行内容”);
bw.newLine();
bw.write(“第二行内容”);
} catch (IOException e) {
e.printStackTrace();
}
读取示例:
try (BufferedReader br = new BufferedReader(new FileReader(“data.txt”))) {
String line;
while ((line = br.readLine()) != NULL) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
使用Files类(NIO.2)简化操作
Java 7引入的
java.nio.file.Files
工具类让文件操作更简洁。
读取整个文件:
try {
List<String> lines = Files.readAllLines(Paths.get(“data.txt”));
lines.foreach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
写入多行内容:
List<String> content = Arrays.asList(“Line 1”, “Line 2”, “Line 3”);
try {
Files.write(Paths.get(“output.txt”), content);
} catch (IOException e) {
e.printStackTrace();
}
处理二进制文件用FileInputStream和FileOutputStream
适用于图片、音频等非文本文件。
复制文件示例:
try (FileInputStream fis = new FileInputStream(“source.jpg”);
FileOutputStream fos = new FileOutputStream(“copy.jpg”)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
基本上就这些。根据需求选择合适的方法,注意异常处理和资源关闭。使用try-with-resources能自动管理流,避免资源泄漏。不复杂但容易忽略细节。
评论(已关闭)
评论已关闭