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()方法可以将对象序列化到流中。

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

 

相关文章
|
1月前
io流分类
按流向分类: 输入流:用于从数据源(如文件、键盘)读取数据。 输出流:用于向目标(如文件、屏幕)写入数据。 按操作类型分类: 字节流:以字节为单位进行操作,适用于所有类型的数据。 字符流:以字符为单位进行操作,更便于处理文本数据。
14 4
|
2月前
|
Java Linux 索引
IO的分类有哪些
IO的分类有哪些
|
2月前
|
Java
Java 中 IO 流的分类详解
【10月更文挑战第10天】不同类型的 IO 流具有不同的特点和适用场景,我们可以根据具体的需求选择合适的流来进行数据的输入和输出操作。在实际应用中,还可以通过组合使用多种流来实现更复杂的功能。
66 0
|
7月前
|
存储 Java API
【JAVA学习之路 | 进阶篇】IO流及流的分类
【JAVA学习之路 | 进阶篇】IO流及流的分类
|
7月前
|
存储 缓存 Java
【Java IO流】流的分类,API使用,文件操作
【Java IO流】流的分类,API使用,文件操作
110 1
|
7月前
|
Java
Java:IO流概述和分类
Java:IO流概述和分类
78 2
|
存储 Java 索引
"Java中的File类、IO基础、IO分类以及字节流的重要性"
"Java中的File类、IO基础、IO分类以及字节流的重要性"
71 0
|
存储 网络协议 Java
IO分类和NIO组成
关于IO和NIO组成
64 1
|
存储 Java 数据处理
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
115 0
JavaIO流(2)--IO流原理、流的分类及节点流文件流操作
|
存储 Java
【JavaSE】文件操作篇(一)文件基础操作与IO流原理及分类
文章目录 1 文件 1.1 文件流 1.2 常用的文件操作 2 IO流原理及流的分类 2.1 IO流原理 2.2 流的分类 写在最后
【JavaSE】文件操作篇(一)文件基础操作与IO流原理及分类