IO流的分类

简介: IO流的分类和常用方法

I/O流在Java中可以按照不同的方式进行分类,主要包括以下几种类型:

按照数据处理方向分类

  1. 输入流(InputStream):用于从数据源读取数据的流。常见的输入流有FileInputStreamBufferedInputStreamObjectInputStream等。
  2. 输出流(OutputStream):用于向目标写入数据的流。常见的输出流有FileOutputStreamBufferedOutputStreamObjectOutputStream等。

按照数据单位分类

  1. 字节流(Byte Stream):以字节为单位进行读写操作的流。常见的字节流有InputStreamOutputStream的子类,如FileInputStreamFileOutputStream等。
  2. 字符流(Character Stream):以字符为单位进行读写操作的流。常见的字符流有ReaderWriter的子类,如FileReaderFileWriter等。

按照功能特性分类

  1. 缓冲流(Buffered Stream):提供缓冲功能,能够提高I/O操作的性能。常见的缓冲流有BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter等。
  2. 转换流(Conversion Stream):用于字符流和字节流之间的转换。常见的转换流有InputStreamReaderOutputStreamWriter等。

按照处理对象分类

  1. 文件流(File Stream):用于对文件进行读写操作的流。常见的文件流有FileInputStreamFileOutputStreamFileReaderFileWriter等。
  2. 内存流(Memory Stream):将数据保存在内存中进行读写操作的流。常见的内存流有ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter等。
  3. 对象流(Object Stream):用于序列化和反序列化对象的流。常见的对象流有ObjectInputStreamObjectOutputStream等。

具体的常用方法根据不同的流类型会有所不同。以下是一些常见的I/O流的常用方法:

字节流(InputStream/OutputStream)的常用方法

  • int      read():从输入流中读取下一个字节,并返回读取的字节数据(以整数形式表示)。
  • int read(byte[] buffer):从输入流中读取数据到指定的字节数组中,并返回实际读取的字节数。
  • void write(int data):将指定的字节数据写入输出流。
  • void write(byte[] buffer):将指定的字节数组中的数据写入输出流。
  • void flush():将输出流中的缓冲数据强制刷新到目标设备。

字符流(Reader/Writer)的常用方法

  • int      read():从输入流中读取下一个字符,并返回读取的字符数据(以整数形式表示)。
  • int read(char[] buffer):从输入流中读取数据到指定的字符数组中,并返回实际读取的字符数。
  • void write(int data):将指定的字符数据写入输出流。
  • void write(char[] buffer):将指定的字符数组中的数据写入输出流。
  • void flush():将输出流中的缓冲数据强制刷新到目标设备。

除了上述基本的读写方法外,还有其他一些常见的方法,例如:

  • close():关闭流并释放相关的资源。
  • available():返回可以从输入流中读取(或跳过)的估计剩余字节数。

此外,还可以根据具体的流类型和需求使用一些特定的方法,例如缓冲流的readLine()方法可以按行读取数据,对象流的writeObject()方法可以将对象序列化到流中。

需要根据具体的场景和需求调用适合的方法来完成相应的读写操作。

 

相关文章
|
2月前
|
存储 Java API
【JAVA学习之路 | 进阶篇】IO流及流的分类
【JAVA学习之路 | 进阶篇】IO流及流的分类
|
2月前
|
存储 缓存 Java
【Java IO流】流的分类,API使用,文件操作
【Java IO流】流的分类,API使用,文件操作
|
2月前
|
Java
Java:IO流概述和分类
Java:IO流概述和分类
43 2
|
9月前
|
存储 Java 索引
"Java中的File类、IO基础、IO分类以及字节流的重要性"
"Java中的File类、IO基础、IO分类以及字节流的重要性"
43 0
|
12月前
|
存储 网络协议 Java
IO分类和NIO组成
关于IO和NIO组成
48 1
|
存储 Java 数据处理
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
82 0
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
|
存储 Java
【JavaSE】文件操作篇(一)文件基础操作与IO流原理及分类
文章目录 1 文件 1.1 文件流 1.2 常用的文件操作 2 IO流原理及流的分类 2.1 IO流原理 2.2 流的分类 写在最后
【JavaSE】文件操作篇(一)文件基础操作与IO流原理及分类
|
存储 缓存 Java
Java_IO流01:IO流原理及流的分类
Java_IO流01:IO流原理及流的分类
89 0
Java_IO流01:IO流原理及流的分类
|
移动开发 Linux Windows
IO流概述分类、字节流写数据、字节流写数据的三种方式及写数据的两个小问题
IO流概述分类、字节流写数据、字节流写数据的三种方式及写数据的两个小问题的简单示例
109 0
IO流概述分类、字节流写数据、字节流写数据的三种方式及写数据的两个小问题
|
数据库
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式
385 0
操作系统第五章_01 IO设备的基本概念和分类 IO控制器 IO控制方式