黑马程序员_输入输出流(IO)

------- android培训java培训、期待与您交流! ----------
(IO)和流的基本概念


    输入输出(IO)是指程序与外部设备进行交互操作。如从键盘上读取数据,从本地网络上的文件中读取数据或者写入数据等。通过输入和输出操作可以从外界接受消息,或者把信息传递给外界。输入输出操作在Jav语言中通过流来实现,通过统一的接口来表示,从而使程序设计变得更简单。


什么是流?


    流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动,类似于物理上的电流。按照数据的传输方向,流可以分为输入流和输出流。在Java语言中流序列中的数据可以是原始的二进制数据,也可以是经过编码处理后符合某种特定格式的数据(比如:视频、MP3、电子书…)。


输入输出流


    Java中,把不同类型的输入输出源抽象为流,其中输入和输出的数据称为数据流(Date Stream)。数据流是Java程序发送和接收数据的一个通道数据流中包括输入流(Input Stream)和输出流(Output Stream)。通常应用程序中使用输入流读取数据,输出流写入数据。流式输入输出的特点在于数据的读取和写入是按数据序列顺序进行的。相对于程序而言,输出流是往存储介质或着数据通道中写入数据,而输出流是从存储介质或者数据通道中读取数据,所以流具备以下一些特点:


(1)   先进先出,最先写入输出流的数据最先被输入流读取到


(2)   顺序存取,可以一个接一个的往流中写入一串字节或字符,读出时也将按写入是的顺序读取


(3)   只读或者只写,每个流只能是输入或者输出流中的一种,不能同时具备两个功能,在一个数据传输通道中,如果既要写入数据又要读取数据,就要分别提供两个流来了。


缓冲流


    如果从新疆往河南运葡萄,一串一串的运效率是相当低的,装车后一车一车的运就效率就提高了。Java中流传输数据,如果一个一个的传效率也很低,为了提高数据的传输效率,引入了缓冲区,缓冲区就是专门用于传送数据的一块内存。


    当向外部设备写入数据时,系统将数据先发送到缓冲区,而不是直接发送到外部设备的。缓冲区自动记录数据,当缓冲区满时,系统将数据全部发送到相应的外部设备。当缓冲区为空时,系统就会从相关的外部设备读取数据,并读取尽可能多的数据填满缓冲区。使用数据流来处理输入输出的目的是使程序的输入输出操作独立于相关设备,程序不需要关注具体的实现细节,只要针对流做处理即可,不需要修改源程序。


I/O流


    为了方便流的处理,Java语言提供了Java.io包,在该包中的每一个类都代表了一种特定的输入或输出流。为方便使用这些类,编程时需要导入这个包。Java提供了两种类型的输入输出流:


字节流,数据的处理是以字节为基本单位的


        字节流每次读写8位二进制数也就是一个字节,所以称为字节流。


字符流,用于字符数据的相关处理


        字符流每次读写16位二进制数,作为一个字符来处理。


 


在Java语言中,使用字节流和字符流的步骤基本相同,已输入流为例:


    首先创建一个流对象


    然后调用流对象的方法写入数据


    最后执行close()方法关闭流,通知系统释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值