字节输入输出流

InputStream

1、FileInputStream(处理文件IO流-节点流)
	1. 用于读取原始的字节流数据,三个构造函数(1-通过File对象;2-文件路径;3-文件
	描述符)
	
2、BufferedInputStream(缓存流或者过滤流)
	1. 创建对象的时候也将创建一个内部缓存区数组
	2. 当读取字节的时候,缓存数组会根据需要重新填充,一次有多个字节;
	3. mark操作会记住输入流中的一点,并且reset操作会导致从最近的mark操作之后读取的所有字节在从包含的输入
	流中取出新的字节之前重新读取。
	4、与FileInputStream相比:减少了读取磁盘IO的操作
		1、使用BufferedInputStream读取资源比FileInputStream读取资源的效率高(BufferedInputStream的read方法会	
		读取尽可能多的字节,执行read时先从缓冲区读取,当缓冲区数据读完时再把缓冲区填满。),因此,当每次读
		取的数据量很小时,FileInputStream每次都是从硬盘读入,而BufferedInputStream大部分是从缓冲区读入。读
		取内存速度比读取硬盘速度快得多,因此BufferedInputStream效率高,且FileInputStream对象的read方法会出
		现阻塞;BufferedInputStream的默认缓冲区大小是 8192 字节。当每次读取数据量接近或远超这个值时,两
		者效率就没有明显差别了。BufferedOutputStream和FileOutputStream同理,差异更明显一些。

3、ObjectInputStream(对象输入流)
	1. 实现反序列化的关键类,ObjectInputStream反序列化流,将之前使用 ObjectOutputStream 序列化的原始数据恢
	复为对象,以流的方式读取对象。其它的用途包括主机之间使用socket流传递对象、远程系统调用。

4、DataInputStream(处理JAVA标准数据流-过滤流)
	1. 用处:
			DataInputStream 是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 
			数据类型”。应用程序可以使用DataOutputStream(数据输出流)写入由DataInputStream(数据输入流)读取的数
			据。

DataInputStream

5、ByteArrayInputStream(字节数组流或者节点流)
	1. ByteArrayInputStream与ByteArrayOutputStream类用于以IO流的方式来完成对字节数组的内容的读写,来支持
	类似内存虚拟文件或者内存映像文件的功能。

ByteArrayInputStream

6、PipeInputStream(管道流)
	1. 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流
	PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的主要流程是在一个线程中		
	向PipedOutputStream写入数据,这些数据会自动传送到对应的管道输入流PipedInputStream中,其他线程通过读
	取PipeInputStream中缓冲的数据实现多线程间通信。

7、PrintStream(打印流)

OutputStream

1、FileOutputStream

2、BufferedOutputStream

3、ObjectOutputStream

4、DataOutputStream

5、ByteArrayOutputStream

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值