Io流——实现文件数据的读写,文件的拷贝

1 篇文章 0 订阅

一,流

流:一连串流动的数据,以先入先出的方式进行传输

流就是管道

数据源——IO流——目的地

分类:

        流向分:(一切以程序为中心)

                输入流

                输出流

        操作单元:

                字节流:万能流(重点)

                字符流:只能操作纯文本内容

        功能:

                节点流:真实做读写

                功能流:增强节点功能与性能

字节流:

        节点流:

                字节数组流:ByteArray        文件流        file(重点)

字节流的输入流节点流:

        InputStream:字节输入流的父类

        FileInputStream:文件字节输入流

字节流的输出流节点流:

        OutputStream:字节输出的父类

        FileOutputStream:文件字节输出流——节点流

注意:如果目的地文件不存在,系统自动创建目的地文件,如果文件不存在,系统不会创建

        数据源——输入流——程序——输出流——目的地

字符流(只能读写纯文本数据)        文件流        节点流

输入流        reader

        Filereader        文件字符输入流

输出流        Writer

        FileWriter        文件字符输出流

功能流(节点流)        包裹使用

缓冲流:加快读写效率

        字节缓冲流

                BufferedInputStream

                BufferedOutputStream

        字符缓冲流

                输入:BufferedReader

                新增功能:String read Line()读一行文字

                输出:BufferedWrite

                新增功能:Void newLine()写一行分隔符

注意:有新增功能需要调用,不能多态调用

字节流的功能流(基本+String)

Data流|基本数据类型:读写数据的同时保留数据的数据类型

        DataInputStream

                新增方法:readXxx()

        DataOutputStream

                新增方法:writeXxx()

注意:写出与读入的顺序保持一致

        必须从写出的源文件中读入数据java.io.EoFException

字节流的功能流

Object流|对象流:数据+数据类型(基本|引用)

序列化:把对象数据转为可储存或可传输的状态过程为序列化

反序列化:从状态过程中读取对象数据

先序列化后反序列化

读入和写出的顺序保持一致

不是所有类型的对象都能实现序列化,要求实现一个java.in.Serialiacble

属性可以不被反序列化保存。为属性赋值transient

静态内容不能被序列化

当父类实现了序列化,子类没有属性,子类可以序列化所有内容

当子类实现了序列化,父类没有实现,子类只能序列化自己独有的内容

序列号:

实现了序列化的类中会默认生成序列号

可以通过序列号检测版本不一致问题,可以通过手动设置序列号解决版本问题

当类中的成员有变动,序列号会默认跟新

如何手动生成序列号

        1.实现序列化接口

        2.Setting设置

        3.选中类名alt+enter——》快捷键生成序列号

Commons-Io        是apache的一个开源的工具包,封装了io操作的相关类

使用步骤:

        1.去apache下载commons Io的源码jar

        2.项目下新建一个文件夹lib,jar放入lib文件夹下

        3.选中jar包右键add as lib...

        4.项目下使用

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值