20201013_陈宇_
日志
学习总结:
流:
在 Java 语言中,将够 读取数据 或者 写出数据 的对象抽象为 流
以内存为基准,分为 输入 input 和 输出 output ,即流向内存是输入流,流出内存的输出流
Java中 I/O 操作主要是指使用 java.io 包下的内容,进行输入、输出操作。输入也叫做读取数据,输出 也叫做作写出数据
在 Java 传统的 IO 体系中,所有的 流 对应的类型都扩展自四个抽象类:
其中的 InputStream 和 OutputStream 的子类表示字节流, Reader 和 Writer 的子类则表示字符流
这里所提及的 Stream 一词均表示流,不能和 java.util.stream.Stream 接口混为一谈
分类:
按流向分类:
输入流:用于实现从外部读取数据到当前程序的流
输出流:用于实现从当前程序中向外部输出数据的流
按处理的数据单元分类:
字节流:如果某个流在读取或写入数据时以字节为单位
字符流:如果某个流在读取或写入数据时以字符为单位
按照流的功能分类:
节点流:直接数据节点中读取数据或向数据节点中写入数据的流
包装流:节点流都比较原始,仅用于实现数据的读取和写入,通常不具备其它功能
节点流和包装流的关系:
Closeable:
java.io.Closeable 接口,实现此接口的都是可以关闭的数据的源或目的地。都会实现 close() 方 法。如: Scanner , InputStream , OutputStream
该类继承了 java.lang.AutoCloseable , AutoCloseable 接口提供了自动关闭的能力
字节输入流:
InputStream 类是所有表示字节输入流的类的父类,它是个抽象类,因此不能被实例化
因为 InputStream 类是个抽象类,因此必须借助于其 非抽子类 来完成实例化
FileInputStream:
FileInputStream 用于从文件系统中的某个文件中读取内容(以字节为单位)
FileInputStream 用于读取诸如图像数据之类的原始字节流
BufferedInputStream:
BufferedInputStream 类的实例表示带有缓冲功能的字节输入流,它是一种包装流
BufferedInputStream 类的实例并不能直接读取数据节点中的数据,而是需要从另外一个流中读取数据
首先要从相应的 InputStream 中读取字节 数据到缓冲区中,随后再从缓冲区中读取数据
BufferedInputStream 类相当于提供了缓存其它字节输入流所读取到的数据的功能
字节输出流:
类似用于输入流
学习心得:
今天学习的对于流的知识可以说已经完全搞混了,代码写出来都全是问题,真是难受,可能跟上课打瞌睡没听到很有关系,而且东西也很多,今天的知识点太多了,需要理解和记忆很多东西,知识点总结却不多,但是下来一定会去再弄一下这一块的知识,毕竟感觉还是挺重要的。
近期评论