字节流、字符流

io流,持久化存储技术

字节流

OutputStream(抽象类)

		FileOutputStream
			构造:
				构造方法摘要 
					FileOutputStream(File file)  --->创建输出流, 不是以续写方式关联
					FileOutputStream(String name) --->创建输出流, 不是以续写方式关联
					FileOutputStream(File file, boolean append) ; ----> 让我们创建一个输出流关联文件,以续写的方式来关联
				作用:
					1.创建一个输出流对象
					2.如果你关联的文件,或者文件的字符串不存在的话, 会帮我们创建该文件(只会帮你创建文件,不会帮你创建文件夹,否则报错)createNewFile()
						注意:如果存在,就清空内容
					3.将对象指向了那个硬盘上的文件
			成员方法:
				write(int b);--->写单个字节
				write(byte[] bytes ); --->写多个字节
				write(byte[] bytes, int start, int len); --->写多个字节的一部分
				close(); 释放资源
			固定步骤:
				1.创建输出流对象
				2.调用写得方法
				3.关闭资源
			例如:
					//创建输出流对象
					FileOutputStream fos = new FileOutputStream("d://b.txt");
					//调用写得方法, 写单个字节
					fos.write('a');// int  b = 97
					//调用写得方法,写单个字节
					fos.write(97);//int b = 97
					//调用写得方法,写多个字节
					byte[] arr = {97,98,99};// abc
					fos.write(arr);
					//关闭资源
					fos.close();

InputStream(抽象类)

		FileInputStream
			构造:
				FileInputStream(File file)  --->创建输入流,
				FileInputStream(String name) --->创建输入流
			成员方法
				 void close()  
				 int read();//效率非常低下, 将读出来的内容,直接返回,
				 int read(byte[] b);//将读出来的内容放在数组,返回的是有效的读取个数
				 int read(byte[] b, int off, int len)  

字符流

注意事项: 只能操作非二进制数据( 比如图片, 音频,视频…用window记事本打开乱码的东西都是二进制数据)。

Reader(抽象类)

		FileReader
			构造:
				FileReader(String path);
				FileReader(File path);
			成员方法:
				int read();
				int read(char[] arr); //一次读一个字符数据的数据, 返回的有效的读取字符的个数
				void close(); 

Writer(抽象类)

		FileWriter
			构造:
				FileWriter(String path);
				FileWriter(File file);
				FileWriter(String path,boolean append);
			作用:
				创建输出流
				如果文件不存在,会创建文件,不会创建文件夹, 如果存在,先清空内容
				将流和文件关联在一起
			成员方法
			 void write(char[] cbuf) 
					  写入字符数组。 
			abstract  void write(char[] cbuf, int off, int len) 
					  写入字符数组的某一部分。 
			 void write(int c) 
					  写入单个字符。 
			 void write(String str) (重点!!!)
					  写入字符串。 
			 void write(String str, int off, int len) (重点!!!)
					  写入字符串的某一部分。 
			 abstract  void close() 
						关闭此流,但要先刷新它。 
			abstract  void flush() 
						刷新该流的缓冲。 
						
		flush方法和close方法的区别:
				flush:刷新缓冲区, 流还是可以继续使用
				cloase: 在关闭之前刷新缓冲区,然后将流关闭, 流不能再使用了!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值