java高级特性 - io流笔记
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
Java的IO流是其高级特性中的重要组成部分,它在处理数据输入与输出方面扮演着核心角色。Java的IO系统设计得相当灵活,可以处理各种类型的数据,包括字符、字节,甚至对象。以下是对Java IO流的详细解读。 1. **IO流的基本概念** Java中的IO流分为输入流(Input Stream)和输出流(Output Stream),分别用于数据的读取和写入。按照数据单位,流又可以分为字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,而字符流处理Unicode字符。 2. **基本流类** - 字节流的基类是`InputStream`和`OutputStream`,分别代表所有输入流和输出流的父类。 - 字符流的基类是`Reader`和`Writer`,它们处理Unicode字符。 3. **流的分类** - 按流向分:InputStream/OutputStream是输入流,Reader/Writer是输出流。 - 按数据单位分:InputStream/OutputStream是字节流,Reader/Writer是字符流。 - 按功能分:FileInputStream/FileOutputStream处理文件,BufferedInputStream/BufferedOutputStream提供缓冲,DataInputStream/DataOutputStream处理基本数据类型,ObjectInputStream/ObjectOutputStream处理对象序列化。 4. **装饰器模式的应用** Java IO流采用装饰器模式,如BufferedInputStream是在InputStream的基础上增加缓冲功能,FilterInputStream则是一个通用的装饰类。这使得我们可以动态地为流添加新功能,而不改变原有流的结构。 5. **转换流** `InputStreamReader`和`OutputStreamWriter`是字节流与字符流之间的桥梁,它们用于将字节流转换为字符流,反之亦然。这对于处理不同编码格式的数据非常重要。 6. **缓冲流** `BufferedReader`和`BufferedWriter`提供了读写缓冲,可以提高读写效率。例如,使用`BufferedReader.readLine()`可以一次读取一行文本。 7. **对象序列化与反序列化** `Serializable`接口标记一个类可以被序列化,`ObjectOutputStream`用于写入序列化的对象到流,`ObjectInputStream`则用于从流中读取序列化的对象。 8. **文件操作** `FileInputStream`和`FileOutputStream`用于直接读写文件,而`FileReader`和`FileWriter`则是对应的字符流版本。`File`类提供了文件和目录的相关操作。 9. **随机访问文件** `RandomAccessFile`支持对文件的随机读写,适合处理大型文件。 10. **管道流** `PipedInputStream`和`PipedOutputStream`可以连接两个线程,使得一个线程的数据可以直接写入另一个线程。 11. **内存流** `ByteArrayInputStream`和`ByteArrayOutputStream`允许在内存中创建流,适合小量数据的临时存储和传输。 12. **过滤流和字符集** 过滤流可以添加额外的功能,如`InputStreamReader`的字符集转换。Java支持多种字符集,如ASCII、UTF-8、GBK等,可以根据需要进行选择。 13. **NIO(非阻塞I/O)** Java 1.4引入了NIO(New I/O),提供了更高效、非阻塞的数据读写方式,如`Channels`、`Buffers`和`Selectors`。 以上就是Java IO流的一些主要知识点,通过理解和熟练运用这些特性,开发者可以有效地处理程序中的数据输入输出需求。在实际开发中,根据不同的场景选择合适的流类型和策略,可以显著提升程序的性能和可维护性。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/ZIP.png)
- 1
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/8aa41e1a9c6c4428a1e22f23f0c8c0da_m0_73728511.jpg!1)
- 粉丝: 2305
- 资源: 4549
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)