Java InputStream类详解:基础操作与装饰类应用

需积分: 9 1 下载量 54 浏览量 更新于2024-07-13 收藏 122KB PPT 举报
输入流—InputStream类是Java中用于处理字节数据的基本输入流类,它是所有字节输入流的父类。InputStream类提供了核心的读取操作,包括: 1. `read()`:这是一个基础方法,用于从输入流中读取单个字节。如果到达流的末尾,会返回-1作为标志。 2. `read(byte[] array)`:此方法用于一次性读取字节数组中的数据,将读取的数据填充到指定的数组中。 3. `read(byte[] array, int off, int len)`:这个版本允许用户指定读取的起始位置`off`和读取的字节数`len`,从而提供更大的灵活性。 在Java I/O操作中,InputStream与OutputStream一起构成了数据的输入输出框架。OutputStream类则负责输出字节,其主要方法有: - `write(int b)`:将单个字节写入流,字节的值存储在参数`b`的低8位。 - `write(byte[] b)`:一次性写入整个字节数组。 - `write(byte[] b, int off, int len)`:按指定范围写入字节数组。 - `flush()`:清除输出流的缓存,确保已写入的数据立即发送。 - `close()`:关闭输出流,释放系统资源。 为了增强OutputStream的功能并实现更细致的数据控制,可以对其进行装饰。装饰模式在这里表现为创建新的输出流对象,如FileOutputStream用于将输出定向到文件,BufferedOutputStream通过缓冲机制减少物理IO操作,提高性能,而PrintStream则提供了格式化的输出,比如字符串中的特殊字符转义。 在实际应用中,如示例代码所示,可以创建这些装饰类的实例,并通过它们来重定向标准输出(如System.out),将文本写入到文件或使用特定的格式。通过这种方式,程序员可以灵活地控制数据的输出方式,同时保持原始数据的完整性。