Java SE IO流详解:从分类到核心类
需积分: 6 63 浏览量
更新于2024-07-09
收藏 445KB DOCX 举报
"这是关于Java基础中的IO流笔记,主要涵盖了IO流的分类、继承结构、常用方法以及不同类型的流之间的对比。"
Java的输入/输出(IO)流系统是其强大的特性之一,允许程序与外部资源(如文件、网络、硬件设备等)进行数据交换。以下是对这些笔记的详细解释:
一、IO流分类
1. 按流向分类:Java中的IO流分为输入流(Input Stream)和输出流(Output Stream),分别用于从源获取数据和向目标发送数据。
2. 按照操作对象分:字节流(Byte Stream)处理单个字节的数据,字符流(Character Stream)处理Unicode字符数据,更适合文本处理。
3. 按照功能分:节点流(Stream)直接连接到数据源或目的地,如文件;处理流(Filter Stream)用于包装其他流,提供额外的功能,如缓存、转换等。
二、IO流继承结构图
Java的IO流体系基于两个基本抽象类:InputStream和OutputStream代表字节流,Reader和Writer代表字符流。它们各自都有许多子类,比如FileInputStream、FileOutputStream、FileReader和FileWriter,分别用于文件的字节和字符输入输出。
三、相关类常用方法
1. File类:提供文件和目录路径名的抽象表示,包含文件操作的相关方法,如创建、删除、重命名文件等。
2. InputStream/OutputStream:作为所有字节输入/输出流的基类,定义了基本的读写方法,如read()和write()。
3. Reader/Writer:作为所有字符输入/输出流的基类,提供了读写字符的方法,如read()和write()。
四、相关类对比
1. 节点流:
- FileInputStream和FileOutputStream:处理所有类型文件,适合二进制数据,如图片、音频等。
- FileReader和FileWriter:专用于文本文件,避免乱码问题,支持字符编码。
2. 处理流:
- BufferedInputStream和BufferedOutputStream:提供缓冲区,提高读写效率,如BufferedInputStream的mark()和reset()方法可以标记位置并回溯。
- BufferedReader和BufferedWriter:增强文本文件读写,提供如readLine()和newLine()等方便的文本处理方法。
3. 其他流:
- DataInputStream和DataOutputStream:支持基本数据类型的直接读写,如int、double等,需要按照写入顺序读取。
- ObjectInputStream和ObjectOutputStream:用于对象的序列化和反序列化,写入的对象需实现Serializable接口,读写顺序必须一致。
IO流在Java编程中起着至关重要的作用,它使得数据的传输和存储变得简单而高效。了解并熟练掌握这些基础知识,将有助于编写出更加灵活和高效的程序。
2021-12-04 上传
2017-09-04 上传
2024-01-11 上传
2023-09-27 上传
2020-08-13 上传
2020-05-25 上传
2023-06-25 上传
2020-05-20 上传
2023-08-17 上传