IO流1(字节流+字符流+输入流+输出流+节点流+处理流)

一(IO流简介)

大多数应用程序都需要实现与设备间的数据传输,如键盘输入数据、显示器显示程序运行的结果等。在Java中,将这种通过不同输入输出设备之间的数据传输抽象表述为“流”,程序允许通过流的方式与输入输出设备进行数据传输。

二(IO流分类)

1.根据流操作的数据单位不同分为:字节流+字符流

字节流:以字节为单位进行数据的读写,每次读写一个或多个字节数据,可以用于操作任何文件。

字符流:以字符为单位进行数据的读写,每次读写一个或多个字符数据,操作中文字符串方便(如记事本读写的时候)。

字节流一般用于处理非文本文件(.jpg .mp3 .mp4 .zip .rar等)。

字符流一般用于处理文本文件(.txt .java .c等)

2.根据流传输的方向不同分为:输入流+输出流

输入流:只能从流中读取数据,而不能向其写入数据。

输出流:只能从流中写入数据,而不能向其写读取数据。

注意:输入输出都是以程序为参照物

3.根据流的功能不同分为节点流和处理流

节点流:也被称为“低级流”,可以从一个特定的I/O设备读写数据的流,只能直接连接数据源,进行数据的读写操作。

处理流:也被称为“高级流”,用于对一个已存在的节点流或处理流进行连接与封装,通过封装后的流来提高流的读写能力。当使用处理流时,程序不会直接连接到实际的数据源,而是连接到已存在的流之上。

文件流(File流)是属于节点流的一种, 程序用于直接操作目标文件所对应的类即文件流。

缓冲流(Buffered流)是属于处理流的一种,有缓冲字节输入流BufferedInputStream 、缓冲字节输出流BufferedOutputStream、缓冲字符输入流BufferedReader、缓冲字符输出流BufferedWriter

Java中的IO流是定义在java.io包中,有4个抽象类是流的顶级类:InputStream(字节输入流)和OutputStream(字节输出流),Reader(字符输入流)+Writer(字符输出流)。

三(字节流)

在计算机中,无论是文本、图片、音频还是视频。都是以二进制(字节)形式存在的,I/O流针对字节的输入输出提供了一系列的流,统称为字节流。在JDK中,提供了2个抽象类InputStream和OutputStream,是字节流的顶级父类,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。

我们可以将InputStream看作一个输入管道,OutputStream看作一个输出管道,数据通过InputStream从源设备输入到程序,通过OutputStream从程序输出到目标设备,从而实现数据的传输,由此可见,IO流中的输入和输出都是针对程序而言的。

InputStream中的常用方法:

int read():从输入流中读取一个8位的字节,把它转为0-255之间的整数并返回,当没有可用字节时(即读取完所有字节)返回-1。

int read(byte[ ] b):从输入流中读取若干字节保存到参数b指定的字节数组中,返回的整数表示读取的字节数目。

int read(byte[ ] b,int off,int len):从输入流中读取若干字节保存到参数b指定的字节数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值