Java IO学习:字节流与字符流实例解析
需积分: 0 26 浏览量
更新于2024-07-30
收藏 594KB DOC 举报
"io学习笔记"
在Java中,I/O(Input/Output)是处理数据传输的核心部分,主要涉及文件操作、网络通信等。本学习笔记重点介绍了两种基本的流类型:`FileInputStream`和`FileOutputStream`,它们分别是字节输入流和字节输出流,用于对文件进行读写操作。
`FileInputStream`是Java中用于读取文件的字节输入流。在提供的代码示例中,`T001_FileInputStream`类展示了如何使用`FileInputStream`来读取文件内容。首先,通过构造函数`new FileInputStream("D:/io.txt")`创建了一个`FileInputStream`对象,尝试打开指定路径的文件。如果文件不存在,会抛出`FileNotFoundException`,程序通过异常处理捕获并打印错误信息,然后退出。一旦成功打开文件,程序就会进入读取循环,使用`read()`方法逐字节地读取文件内容。当`read()`返回-1时,表示文件已读完。读取到的每个字节被转换为字符并打印,同时统计读取的字节数。最后关闭输入流以释放系统资源。
在代码运行过程中,由于使用的是字节流,当遇到中文字符时,每个中文字符通常由两个字节表示,而`read()`方法一次只读取一个字节,因此打印出来的结果可能是乱码(表现为问号)。解决这个问题的方法是改用字符流`FileReader`,它能更好地处理字符编码,特别是对于多字节编码如UTF-8的中文字符。
`FileOutputStream`是Java中的字节输出流,用于向文件写入数据。虽然在这个学习笔记中没有给出具体的`FileOutputStream`使用示例,但其工作原理与`FileInputStream`类似。创建`FileOutputStream`对象时,可以指定要写入的文件路径。使用`write(int b)`方法可以向文件写入单个字节,或者使用`write(byte[] b)`方法写入字节数组。同样,完成写入后记得调用`close()`方法关闭流。
总结来说,Java的I/O流分为字节流和字符流,其中`FileInputStream`和`FileOutputStream`是字节流的典型代表,适用于处理任意字节数据,包括二进制文件。在处理文本文件,尤其是包含多字节字符的文本时,应考虑使用字符流,如`FileReader`和`FileWriter`,以确保正确的字符编码。理解这两种流的区别和应用场景是Java I/O操作的基础。
103 浏览量
2009-08-19 上传
2018-09-12 上传
点击了解资源详情
点击了解资源详情
2016-12-12 上传
2019-04-18 上传
2021-05-26 上传
一根羽毛
- 粉丝: 1
- 资源: 5
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能