5.4Java IO流开篇
本章内容
IO介绍---input、output--->输入输出流
File
字节流--->流动的是数据,在计算机当中存储为字节
字符流--->我们直接操作的是字符(有组件帮助我们进行字节流和字符流的管理)
CommonsIO
后期开发过程中更多的关注功能(将客户的需求转成代码)而不是技术(技术上是架构师去做的,一步一步来)
IO介绍
IO简介:
- 
io是指input、output,流是一个抽象的(abstract)概念 
- 
从一端移动到另一端。--->一端指:程序。另一端指:数据源(data source)(文件、数据库、网络...存储数据介质的地方)--->源头和程序之间的管道称之为:IO流 
- 
流是一个抽象、动态的概念,是一连串动态的数据集合 
流是一个流动的概念,这就涉及到数据源与程序的交互
什么是数据源(data source)
提供原始数据的原始媒介
常见的数据源:
- 
数据库 
- 
文件 
- 
其他程序 
- 
内存 
- 
网络连接 
- 
IO设备 
...
数据与程序交互的方式---字节流

特点:
- 
一切以程序为中心 - 
进入程序称为输入流---读进来 
- 
离开程序称为输出流---写出去 
 
- 
- 
Java程序中对数据的输入/输出操作以"流"(stream)方式进行 - 
J2SDK提供了各种各样的"流"类,用以获取不同种类的数据,程序中通过标准的方法输入或输出数据 
- 
Java的流类型一致位于java.io包中 
 
- 
核心类
File类--->数据源
文件类--->文件存储到操作系统的硬盘中
InputStream类
字节输入流
OutputStream类
字节输出流
Reader类
字符输入流
Writer类
字符输出流
Closeable接口--->Java告知操作系统释放资源
关闭流接口
Flushable接口--->Java告知操作系统强制刷新--->避免数据滞留在管道中
刷新流接口
Serializable接口--->Java为了便于对象存储到文件中,存储对象称之为序列化--->还原对象称为反序列化
序列化接口
最核心的五类三接口
实际上只需要把程序对接起来就可以实现读内容、写内容的即实现了文件的拷贝--->上传和下载文件--->根据流向来分输入输出流
按功能分读写
直接操作数据源---节点流(存储节点、网络节点---数据源)
可以直接从数据源或目的地读写数据---后台服务
在节点流之上为了提高效率、提升性能---包装流(设计模式当中称之为装饰设计模式)
不直接连接到数据源或目的地,是其他流进行封装。起到简化操作和提高性能的作用
节点流和处理流的关系
- 
节点流处于io操作的第一线,所有操作必须通过他们进行 
- 
处理流可以对其他流进行处理(提高效率或操作灵活性) 
按方向
输入流、输出流
按功能
节点流、处理流
按数据
字节流(字节操作字节)、字符流(操作纯文本的)
- 
字节流:input、output 
- 
字符流:reader、writer ---> 底层原理还是字节流,自动搜寻了指定的码表(字符集表) - 
人们根据二进制翻译而来的大量的字符集 
- 
字符集是对应的,读的时候是什么字符集写的时候也要是什么字符集,不然计算机底层识别不出来就会出现乱码 
- 
 
- 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号