java学习笔记--IO流

IO流
I=Input=输入
O=Output=输出
流=数据从源点传输到汇点的“管道”
流的三种分类:
按方向分: 输入流 输出流(参照物)
按单位分: 字节流 字符流
按功能分: 节点流 过滤流(包装流、处理流)
Start

InputStream:	所有字节输入流统一的父类-抽象类
int read();
int read(byte[]data);
int read(byte[]data,int off,int len);

OutpiutStream:	所有字节输出流统一的父类-抽象类
write(int data);
write(byte[]data);
write(byte[]data,int off,int len);
FileInputStream	输入流	字节流	节点流
FileOutputStream输出流	字节流	节点流
	*:它们都是节点流 构造方法允许传入String路径/File对象
	*:他们都是节点流 但是只能连接文件 不能连接目录
		否则直接触发异常 FileNotFountException
		节点流连接目录:(拒绝访问)
		节点流连接不存在的文件:(系统找不到指定的文件)
	*:FileOutputStream 是节点输出流
		节点输出流创建对象的时候 即便连接的文件不存在也会在创建流的那一刻 自动创建 不需要手动建
		其实File类有个方法叫createNewFile() 但是如果连接的目录结构都不存在 不但不建 还报异常
		所以File类有个方法叫mkdirs()--->一等优先级
	*:FileOutputStream 是节点输出流
		节点输出流创建对象是非常可怕的 它具有极强的杀伤性
		如果连接的文件已经存在 也会在创建流的那一刻 被新的空白文件直接覆盖
		如果我们的需求实在原有的内容的最后追加新内容 不要覆盖
		构造方法第二个参数 可以指定追加模式的开启 new FileOutputStream("a.txt",true);
	*:FileInputStream 最常用的read(byte[],int,int)
	*:FileOutputStream:最常用的write(byte[],int,int)
	*:FileInputStream 以-1作为读取结束的标识
	*:用完流请第一时间关闭 解除对文件的占用
	*:必须学会使用标准的 try catch finally和TWR
BufferedInputStream:	输入流 字节流 过滤流
BufferedOutputStream	输出流 字节流 过滤流
	*:作为过滤流的它们 是为了给原本的节点流添加巨大的缓冲空间
	从而提高每次读写的吞吐量 进而提高效率
	*:作为过滤流的它们 不能直接连接文件 只能连接其他的流
	*:它们的构造方法的第二个参数 都允许指定缓冲空间大小
	默认缓冲空间只有8K 8192个字节
	*:BufferednputStream 最常用的是 read()
	*:BufferedOutputStream 最常用的是 write(int data)
	*:BufferedInputStream 同样是以-1作为读取结束的标识
	*:BufferedOutputStream 是带缓冲的输出流
		使用带缓冲的输出流的时候 一定注意 及时清空缓冲 防止数据滞留缓冲空间而导致丢失
			1.满了自动清空 无需操作
			2.关闭流的操作 会触发清空操作
			3.主动调用方法清空 flush();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值