day 17 03.18 Stream

03.18

数据流

在这里插入图片描述
new 克隆 反序列化 产生对象的三种方式

流的基本概念
在这里插入图片描述

I/O流

理解流

atm机器,数据保存在内存中,一旦系统运行完毕,或者中途中断退出,当前操作的数据全都消失,下次再访问系统数据已经丢失。
如果要将系统的数据保存起来。留的操作,文件的操作。

— 什么是流? —
在程序中,流的概念:java程序中当需要读取数据的时候,就会开始一个通向数据源的设备流。这个数据源可以是文件、 内存、 网络资源 。

程序-------》硬盘文件
程序-------》内存获取
程序-------》网络资源

当我们程序需要写入数据,开启一个通往目的地的设备流。这个时候我们可以将数据理解为流,在管道里面进行传输或流动

流:具有两个特征
1、含有流质
2、具有方向
这两个特征正好符合计算机系统中数据传输的特征

流来抽象数据传递
方向:硬盘文件----程序 程序----硬盘文件
输入流 输出流
在这里插入图片描述

在程序中流的分类

java。io 提供了我们操作数据使用的各种流。
流的分类(流质、方向 )

*1、按照方向来分
1、输入流:输入流是从数据源读取到内存中。InputStream、Reader对象代表输入流
2、输出流:输出流内存将数据写入到数据源,OutpuntStream、Writer
*2、按照类型来分
1、字节流:传输的时候以byte为最小单位进行传递
2、字符流:传输的时候以char为最小单位进行传递
*3、按照功能来分
1、节点流:节点流表示从一个特点的数据源读取数据,节点流一般直接操作文件、或者网络等提供的流。他们直接从文件读取数据,将数据直接写入到文件中。也称为低级流。
2、处理流 :处理流不是直接连接到设备上、而是建立在其他流之上,通过对数据的处理提供更强大的功能。处理流也称为高级流。

好处?
在低级流的基础之上继续扩展和优化了功能。
在程序中操作的都是高级流。

学习类:InputStream、OutputStream Reader、Writer 都是抽象类。使用时抽象类的子类。

操作流的步骤:
1、建立流,根据不同类型的数据选择不同的流的操作
2、操作流,将数据读取到内存,或者将内存数据写入到数据源
3、关闭流,操作结束后,记得将流给关闭。释放所有的资源。

file文件类的操作

java。io包提供了一个类,主要用于管理磁盘里面的所有文件或者文件的目录,比如:文件的大小、名字、类型都可以操作,唯一不能操作文件件的内容。(文件的内容属于流)

file类描述的是一个文件、或者一个文件夹。
该类出现的目,封装File对象提供各种文件操作方法,供我们开发过程中直接调用接口可以完成某些特定的功能(创建一个文件夹、删除一个文件、判断文件是否存在 File类没有无参构造方法)
在这里插入图片描述
file。mkdir 创建文件
isDirectory 判断文件夹
isFile 判断文件
delete 删除一个文件
在删除文件的时候,如果抽象路径是指向空文件夹,直接删返回true,如果删除的文件夹里面有文件,不能删除

在这里插入图片描述
列出文件夹中的文件
。list 用字符串接收

使用递归打印文件夹下所有文件
在这里插入图片描述在这里插入图片描述
使用File移动文件
。renameTo
在这里插入图片描述

在这里插入图片描述
IntputStream:
FileIntputStream:对二进制的文件进行操作。数据源一般为磁盘。
PipedInputStream:主要针对线程管道
FilterOutputStream:过滤流,提供的子类非常重要,缓冲流、数据流
ByteArrayOutPutStream:对内存缓冲区的数据进行读写操作、数据源是内存的字节数组
StringBufferInputStream:用于操作字符串的流
ObjectIntputStream:对象流,用于操作内存中对象

	深色为节点流,浅色为处理流

在这里插入图片描述

具体流的操作

字节流
字节流以byte作为最小单位传输,字节流经常用于操作二进制的文件,图片、音频、视频。

调用一次read就读一次,
在这里插入图片描述
写文件
write(by,0,value):by定义缓冲数据池数组长度,0代表从第0个字节开始,value表示value的长度

BufferedInputStream:
缓冲流:缓冲流一个高级流。套在响应节点基础之上,对读写数据提供缓冲的功能,提高了读写的效率,同时还增加了一些额外的方法。
缓冲区:
byte【】 by = new byte【1024】;缓冲区,在内存空间开辟一个缓冲区域,读写先将数据放入缓冲区,减少对磁盘的读写
使用缓冲流:
1、减少对磁盘的io操作
2、提高了数据的读写效率
在这里插入图片描述

DataIntputStream  DataOutputStream
数据流:提供一些列的功能,读取的数据转化一个byte、boolean、long、float
输出的输出  可以输出byte 输出long等等   输出字符串

在这里插入图片描述

printWrite:打印流,在System系统输出数据到控制台的时候就已经使用

对象的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值