5.4Java IO流开篇

5.4Java IO流开篇

本章内容

  • IO介绍---input、output--->输入输出流

  • File

  • 字节流--->流动的是数据,在计算机当中存储为字节

  • 字符流--->我们直接操作的是字符(有组件帮助我们进行字节流和字符流的管理)

  • CommonsIO


后期开发过程中更多的关注功能(将客户的需求转成代码)而不是技术(技术上是架构师去做的,一步一步来)

IO介绍

IO简介:

  • io是指input、output,流是一个抽象的(abstract)概念

  • 从一端移动到另一端。--->一端指:程序。另一端指:数据源(data source)(文件、数据库、网络...存储数据介质的地方)--->源头和程序之间的管道称之为:IO流

  • 流是一个抽象、动态的概念,是一连串动态的数据集合

流是一个流动的概念,这就涉及到数据源与程序的交互

什么是数据源(data source)

提供原始数据的原始媒介

常见的数据源:

  1. 数据库

  2. 文件

  3. 其他程序

  4. 内存

  5. 网络连接

  6. IO设备

...

数据与程序交互的方式---字节流

特点:

  • 一切以程序为中心

    • 进入程序称为输入流---读进来

    • 离开程序称为输出流---写出去

  • Java程序中对数据的输入/输出操作以"流"(stream)方式进行

    • J2SDK提供了各种各样的"流"类,用以获取不同种类的数据,程序中通过标准的方法输入或输出数据

    • Java的流类型一致位于java.io包中

核心类

File类--->数据源

文件类--->文件存储到操作系统的硬盘中

InputStream类

字节输入流

OutputStream类

字节输出流

Reader类

字符输入流

Writer类

字符输出流

Closeable接口--->Java告知操作系统释放资源

关闭流接口

Flushable接口--->Java告知操作系统强制刷新--->避免数据滞留在管道中

刷新流接口

Serializable接口--->Java为了便于对象存储到文件中,存储对象称之为序列化--->还原对象称为反序列化

序列化接口

最核心的五类三接口

实际上只需要把程序对接起来就可以实现读内容、写内容的即实现了文件的拷贝--->上传和下载文件--->根据流向来分输入输出流

按功能分读写
直接操作数据源---节点流(存储节点、网络节点---数据源)

可以直接从数据源或目的地读写数据---后台服务

在节点流之上为了提高效率、提升性能---包装流(设计模式当中称之为装饰设计模式)

不直接连接到数据源或目的地,是其他流进行封装。起到简化操作和提高性能的作用

节点流和处理流的关系

  1. 节点流处于io操作的第一线,所有操作必须通过他们进行

  2. 处理流可以对其他流进行处理(提高效率或操作灵活性)

按方向

输入流、输出流

按功能

节点流、处理流

按数据

字节流(字节操作字节)、字符流(操作纯文本的)

  • 字节流:input、output

  • 字符流:reader、writer ---> 底层原理还是字节流,自动搜寻了指定的码表(字符集表)

    • 人们根据二进制翻译而来的大量的字符集

    • 字符集是对应的,读的时候是什么字符集写的时候也要是什么字符集,不然计算机底层识别不出来就会出现乱码

    •  

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14736438.html