Java-基础-文件字节流和缓冲字节流的差别

本文探讨Java中文件字节流和缓冲字节流的相同点与不同点。相同点在于关闭流后无法进行读写操作。不同点在于,文件字节流会直接写入文件,而缓冲字节流未关闭或刷新前不会写入。flush用于刷新缓冲区数据到文件,close则关闭流并默认刷新缓冲区。默认缓冲区大小为8KB。
摘要由CSDN通过智能技术生成

文件字节流和缓冲字节流的差别:

  • 相同之处:
    关闭流以后不能在进行任何的读取和写入操作
  • 不同之处:
    如果两个都不写close方法就有区别
    文件字节流会创建文件并且把数据写进去
    缓冲字节流也会创建文件 但是不会写东西
    原因:如果没有进行关闭流的操作或者刷新缓冲区操作那么该流不会写出去减少了和本地文件的IO操作 这样提高了效率
  • flush和close的区别:
    flush 主要针对于缓冲区,将缓冲区的书据写出去
    close 主要是关闭流的操作,只是在关闭流的同时帮助刷新一次缓冲区
    如果缓冲区满了 也会默认刷新一次 缓冲区大小 :8192字节(默认)8kb
public class FileCompare {
   
	/*
	 * 缓冲字节流和文件字节流拷贝的时间比较:
	 * 
 	 * 		文件字节流 一次拷贝一个字节:19412
	 * 
	 * 		文件字节流 一次拷贝一个字节数组:38
	 * 
	 * 		缓冲字节流一次拷贝一个字节:243
	 * 
	 * 		缓冲字节流一次拷贝一个字节数组:20
	 *
	 *		从运行时间上来看缓字节流还是节省了很多的时间
	 */
	

	public static void main(String[] args) {
   
		 long start = System.currentTimeMillis();
		 //文件字节流 一次拷贝一个字节:
		 //copy1("qq.txt", "mubiao.txt");
		 
		 //文件字节流 一次拷贝一个字节数组:
		 //copy2("qq.txt", "mubiao.txt");
		 
		 //缓冲字节流一次拷贝一个字节:
		 //copy3("qq.txt", "mubiao.txt");
		 
		 //缓冲字节流一次拷贝一个字节数组:
		 //copy4("qq.txt", "mubiao.txt");
		 
		 long end = System.currentTimeMillis();
		 System.out.println("功耗时:"+(end-start ));
	}
	
	//文件字节流一次拷贝一个字节
	public static void copy1(String srcFile,String destFile){
   
		try {
   
			FileInputStream fis = new F
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值