Java基础:文件读写操作详解及示例
3星 · 超过75%的资源 需积分: 16 149 浏览量
更新于2024-09-27
收藏 1KB TXT 举报
Java 文件读写操作是 Java 编程中不可或缺的基础技能,尤其是在处理文本文件和二进制数据时。本文将详细介绍如何在不同版本的 Java(JDK 1.0 和 JDK 1.1)中使用各种类进行文件操作。
1. JDK 1.0 时代的输入/输出流
在早期的 Java (JDK 1.0) 中,文件读写主要依赖于 `InputStream` 和 `OutputStream` 作为基础类。`FileInputStream` 是一个用于读取文件的抽象类,它实现了 `InputStream` 接口,提供了一种低级的、面向字节的读取方式。例如:
```java
FileInputStream fstream = new FileInputStream(args[0]);
DataInputStream in = new DataInputStream(fstream);
String line;
while ((line = in.readLine()) != null) {
// 处理每一行数据
}
in.close(); // 关闭流以释放系统资源
```
`FileOutputStream` 则用于将数据写入文件,如:
```java
FileOutputStream out = new FileOutputStream("myfile.txt");
PrintStream p = new PrintStream(out);
p.println("Hello, World!"); // 打印内容
p.close(); // 关闭输出流
```
这两个类的操作较为底层,适合处理二进制数据,对于文本处理可能不太直观。
2. JDK 1.1 的改进:引入字符流
随着 Java 1.1 的发布,引入了 `Reader` 和 `Writer` 类,它们提供了更高层次的、面向字符的读写接口,这使得处理文本文件更加方便。例如,使用 `FileReader` 和 `BufferedReader` 可以实现以下操作:
```java
FileReader fr = new FileReader("mydata.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
// 处理文本行
}
br.close(); // 关闭缓冲流
fr.close(); // 关闭底层流
```
`FileWriter` 和 `PrintWriter` 也对应地提供了字符级别的写入功能:
```java
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);
out.println("This is a text file."); // 打印文本
out.close(); // 关闭输出流
fw.close(); // 关闭文件流
```
这些字符流类在处理文本文件时提供了更好的可读性和易用性,比如自动处理换行符和编码问题。
总结起来,Java 文件读写操作根据版本的不同,经历了从低级字节流到高级字符流的进化。在选择合适的工具时,需要考虑数据类型(二进制还是文本)、性能需求以及处理的复杂性。熟练掌握这些基础操作是进行Java 文件操作的基础,后续在实际开发中可以进一步探索 `RandomAccessFile`、`BufferedWriter`、`FileChannel` 等高级特性,以满足更复杂的文件处理需求。
2013-11-05 上传
2023-06-09 上传
2023-06-06 上传
2023-05-28 上传
2023-06-13 上传
2024-02-05 上传
2023-07-08 上传
weiss_80
- 粉丝: 12
- 资源: 19
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录