Java数据流操作:读取与写入通讯录
需积分: 9 57 浏览量
更新于2024-09-12
收藏 1KB TXT 举报
"此Java程序利用数据流从文件中读取通讯录信息,查找特定人员,并进行文件写入操作。"
在Java编程中,数据流(Data Stream)是处理输入输出(I/O)操作的重要工具,它允许程序员以有序的方式读取或写入数据。在这个具体的例子中,程序实现了从一个文本文件("d:\\tongxunlu.txt")读取通讯录数据,查找包含特定字符串的人员名单,并将结果输出到控制台。同时,程序还能够更新文件,将新的或修改后的通讯录信息写回至同一文件。
首先,程序通过`FileInputStream`创建一个输入流对象,用于读取文件。`FileInputStream`是Java I/O流中的一个核心类,用于处理二进制文件的输入。接着,使用`InputStreamReader`对`FileInputStream`进行包装,将二进制流转换为字符流。这是必要的,因为我们的通讯录数据是基于文本的。`InputStreamReader`接收一个`FileInputStream`作为参数,指定了文件的读取方式。
然后,`BufferedReader`被用来提高读取效率,它是一个字符缓冲流,可以一次性读取多行数据。程序通过`readLine()`方法逐行读取文件内容,直到文件末尾。读取的每一行数据都被存储在一个字符串数组`arr`中。
为了查找特定人员,程序创建了`Scanner`对象,从`System.in`获取用户输入。用户输入的字符串与数组`arr`中的每一项进行比较,如果找到匹配项,就将其打印到控制台。
查找操作完成后,程序开始执行写入操作。这里,使用`FileOutputStream`创建一个输出流,准备向指定文件写入数据。同样,`OutputStreamWriter`对`FileOutputStream`进行包装,使得我们可以写入字符而不是二进制数据。为了提高写入效率,我们使用`BufferedWriter`,它提供了一种缓冲机制,可以减少实际的磁盘I/O操作次数。
然而,代码片段在最后没有关闭`BufferedWriter`,这是不推荐的,因为未关闭的流可能会导致资源泄漏。通常,你应该始终确保在完成I/O操作后正确关闭流。在实际编程中,可以使用`try-with-resources`语句自动关闭资源,以避免资源泄露。
这个程序展示了如何使用Java的数据流API来处理文件读写操作,以及如何在文本数据中进行搜索和替换。这些基本概念对于任何Java开发者来说都是至关重要的,特别是在处理文件系统操作时。
501 浏览量
716 浏览量
354 浏览量
4025 浏览量
561 浏览量
3036 浏览量
3070 浏览量
571 浏览量
1934 浏览量
![](https://profile-avatar.csdnimg.cn/8ef063d27370423580ecec987e575512_qq_26707755.jpg!1)
qq_26707755
- 粉丝: 0
最新资源
- C#实现Console与Form界面加法运算教程
- Neuroph 2.9:轻量级Java神经网络框架及GUI应用
- 流星运行时Fibers模块实现同步异步编程
- IOS中TableView箭头颜色更改教程及图片示例
- Springboot文件上传功能实现与端口路径配置
- TorrSE 2.0.2_mod_signed_zipalign:磁力链接爬虫软件
- 微信小程序开发实战:辣椒忍者源码解析
- QuadMinds通知扩展插件:桌面事件即时通知
- QQPhoneManager压缩包文件解析与管理技巧
- 掌握数据库活动管理:JavaScript开发者的必备指南
- 易语言实现倍数判断功能的源码分析
- 掌握在线PDF预览技术:前端至后端完整实现
- 易特商业销售管理系统:全面解决方案与高效管理
- IOS源码:Scream.swift封装target和selector
- 全面兼容主流浏览器的纯JavaScript日历
- 探索动态广播在页面间通信的实现方法