IO流(基本字节字符流)


谈到IO流,我们首先要知道有哪两种流,有的人会说输入流和输出流,那么这么说也不能说是错了,不过这还不是最本质的IO流,两种流分别是字节流和字符流.

字节流:stream流就是字节流,inputstream,outputstream;输入输出流要对应的去记忆.

附上一个最经典的案例,用字节流复制文件.步骤就是创建输入输出流,然后一个字节一个自己的读取,直到返回值为-1了,就说明读完了,用write方法写,最后关闭输入输出流,这是最基本的步骤.

FileInputStream fis = new FileInputStream("双节棍.mp3");//创建输入流对象,关联双节棍.mp3
		FileOutputStream fos = new FileOutputStream("copy.mp3");//创建输出流对象,关联copy.mp3
		
		int b;
		while((b = fis.read()) != -1) {	//在不断的读取每一个字节
			fos.write(b);	//将每一个字节写出
		}
		
		fis.close();//关流释放资源
		fos.close();

说到这里,我们还得说一下Buffered,这个意思就是加缓冲区,带上缓冲区,效率就会提高.比如还用上面的这个例子,我们来实现一下

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("双节棍.mp3"));//创建输入流对象,关联双节棍.mp3
<span style="font-size:18px;"></span><pre name="code" class="java">BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("copy.mp3");//创建输出流对象,关联copy.mp3
		
		int b;
		while((b = fis.read()) != -1) {	//在不断的读取每一个字节
			fos.write(b);//将每一个字节写出
		}
		
		fis.close();//关流释放资源
		fos.close();

 说到高效,不得不提一下用数组拷贝文件了,附上代码简单说明一下 
FileInputStream fis = new FileInputStream("双节棍.mp3");
		FileOutputStream fos = new FileOutputStream("copy.mp3");
		
		byte[] arr = new byte[1024 * 8];
		int len;
		while((len = fis.read(arr)) != -1) {//如果忘记加arr,返回的就不是读取的字节个数,而是字节的码表值
			fos.write(arr,0,len);
		}
		
		fis.close();
		fos.close();
看第三行代码byte[] arr  = new byte[1024 * 8],这个就是用数组去高效的拷贝文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值