Java输入输出流体系

简介: 本文介绍Java输入输出流体系的基本内容。

,Stream,代表的是程序中数据的流通。
数据流是一串连续不断的数据的集合,而每一比特的数据,就如同水管(假设足够狭窄)中串行流淌的一滴水。

在Java程序中,对于数据的 I/O 操作是以流的方式进行的。
我认为,“流”这个概念,构建起了Java整个I/O体系的框架。

在学习《程序设计基础》的时候,我们就应该知道——I/O的数据流向和我们固有的认知相反:
输入流:流入程序的数据
输出流:流出程序的数据

在Java程序中,从输入流读取数据(读到内存中),而从输出流输出数据(从内存存储到文件或显示到屏幕上)。

流的分类

  • 按流的方向不同

    • 输入流
    • 输出流
  • 按处理数据的单位不同

    • 字节流
    • 字符流
  • 按功能不同

    • 节点流
    • 处理流

java.io.*

Java语言中,控制数据流的类都放在java.io包中
java.io包中有两大继承体系:

  • 以byte处理为主的Stream类, 其命名方式是:XXXStream(XXXInputStream/XXXOutputStream)
  • 以字符处理为主的Reader/Writer类,他们的命名方式是:XXXReader/XXXWriter

I/O体系的四大抽象类

InputStream、OutputStream、Reader、 Writer这四个类,是这两大继承体系的父类,全是抽象类。

基类 字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer

流的分类总结表

Note:斜体表示抽象类加粗表示节点流

分类 字节输入流 字节输出流 字符输入流 字符输出流
抽象父类 InputStream OutputStream Reader Writer
访问文件 FileInputStream FileOutputStream FileReader FileWriter
访问数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
访问管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
访问字符串 StringReader StringWriter
缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
转换流 InputStreamReader OutputStreamWriter
对象流 ObjectInputStream ObjectOutputStream
抽象父类 FilterInputStream FilterOutputStream FilterReader FilterWriter
打印流 PrintStream PrintWriter
推回输入流 PushbackInputStream PushbackReader
特殊流 DataInputStream DataOutputStream

流的层次结构图

image.png

字节输入流的层次结构图

image.png

字节输出流的层次结构图

image.png

字符输入流的层次结构图

image.png

字符输出流的层次结构图

image.png

相关文章
|
29天前
|
缓存 Java
JAVA带缓存的输入输出流
JAVA带缓存的输入输出流
18 0
|
29天前
|
Java
JAVA输入输出流
JAVA输入输出流
12 1
|
1月前
|
Java
Java输入输出流详细解析
Java输入输出流详细解析
23 1
|
9月前
|
Java
JAVA 输入输出流 本地文件读写
JAVA 输入输出流 本地文件读写
|
6月前
|
存储 Java 编译器
java之九 基本输入输出流
java之九 基本输入输出流
27 0
|
7月前
|
存储 移动开发 Java
Java文件上传下载删除文件输入输出流IO
Java文件上传下载删除文件输入输出流IO
70 0
|
8月前
|
Java 数据处理
Java IO(File、字节输入输出流、字符输入输出流、打印流)附带相关面试题
1.File类,2.字节输入输出流(InputStream Outputstream),3.Writer与Reader字符输入输出流,4.打印流
59 0
|
10月前
|
Java 关系型数据库 MySQL
【Java I/O 流】数据输入输出流:DataInputStream 和 DataOutputStream
数据流与要是将 Java 的基础数据类型读取或写入流中,它有如下特点: > 数据流是一个处理流,它必须套接在节点流之上。 数据流在读取和写入时的顺序要一致。否则,读取的数据会失真,造成乱码。
220 0
|
10月前
|
存储 缓存 Java
【Java I/O 流】文件字符输入输出流:FileReader 和 FileWriter
本篇文章主要讲述“文件字符输入流”和“文件字符输出流”两个类的使用,并列举了一些读写案例,帮助学习。
344 0
|
10月前
|
存储 缓存 Java
【Java I/O 流】字符输入输出流:Reader 和 Writer
前面我们已经学会了字节流的使用,本篇开始介绍字符流。字符输入输出流是所有字符流的超类,学会了它们的方法,也基本上掌握了其子类的使用了。
78 0