Java I/O流详解:从InputStream到PrintStream
需积分: 9 153 浏览量
更新于2024-08-23
收藏 122KB PPT 举报
"Java中的InetAddress类用于表示网络上的IP地址,它是一个final类并实现了Serializable接口。InetAddress由两部分组成:hostName(字符串类型)代表主机名,address(整型)代表IP地址。此外,文件还提到了Java的I/O流系统,包括字节流和字符流的概念,以及OutputStream类在输出流中的核心方法,如write、flush和close。OutputStream可以通过装饰模式与其他类结合,如FileOutputStream、BufferedOutputStream和PrintStream,以增强功能和控制数据输出。"
在Java中,InetAddress类是处理网络地址的核心类。它提供了获取和解析IP地址的方法,使得开发者能够在网络编程中与远程主机进行交互。hostName是主机的名称,便于人类识别,而address则是IP地址的数值表示,通常为IPv4或IPv6的数字形式。通过InetAddress,我们可以执行以下操作:
1. 获取本地主机的IP地址:`InetAddress.getLocalHost()` 返回当前设备的IP地址。
2. 获取指定主机名的IP地址:`InetAddress.getByName(String host)` 通过主机名查找对应的IP地址。
3. 解析IP地址:`InetAddress.getByAddress(byte[] addr)` 将字节数组形式的IP地址转换为InetAddress对象。
转向Java的I/O流系统,Java提供了字节流和字符流来处理输入和输出。字节流以字节为单位进行数据传输,适用于所有类型的原始数据;字符流以字符为单位,适合处理文本数据。InputStream和OutputStream作为字节流的基类,分别用于输入和输出;Reader和Writer作为字符流的基类,也有同样的功能。这些基类都是抽象类,实际使用时通常会使用它们的子类,如FileInputStream、FileOutputStream、BufferedReader和BufferedWriter。
OutputStream类提供了基本的字节输出功能,如write方法用于写入单个字节或字节数组,flush方法清空缓冲区并确保数据被立即写入,而close方法关闭流并释放资源。为了增强OutputStream的功能,可以使用装饰器模式添加额外的行为,例如:
- FileOutputStream将输出流与文件关联,允许直接向文件写入数据。
- BufferedOutputStream引入了缓冲机制,提高性能,减少物理磁盘的读写次数。
- PrintStream则提供格式化输出的能力,如打印错误信息、换行等,并且可以直接处理异常,防止程序因IO问题而崩溃。
在示例代码中,通过一系列装饰,System.out被重定向到一个名为"out.txt"的文件中,首先创建FileOutputStream指向文件,然后使用BufferedOutputStream增加缓冲功能,最后用PrintStream实现格式化输出。这样,所有的标准输出都将被记录到文件中。
2024-07-07 上传
164 浏览量
2019-04-15 上传
2023-06-10 上传
2023-05-25 上传
2023-05-17 上传
2023-06-03 上传
2023-08-21 上传
2023-05-25 上传
四方怪
- 粉丝: 28
- 资源: 2万+
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现