您现在的位置是:首页 > 正文

java 之BufferedOutputStream的flush和close方法的区别

2024-04-01 02:04:59阅读 4
BufferedOutputStream的flush和close方法的区别
	 * flush()方法
	 * 		 1.用来刷新缓冲区,刷新后可以再次写出
	 * close()方法
	 * 		 2.用来关闭流释放资源
	 *		 3.如果是带缓冲区的流对象的close()方法,不但会关闭流,还会在关闭流之前刷新缓冲区,关闭之后不能再写入
package com.feng;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Demo02 {
 
	public static void mian(String[] args) throws IOException {
		
		/*
		 * BufferedOutputStream的flush和close方法的区别
		 * 
		 * flush()方法
		 * 		 1.用来刷新缓冲区,刷新后可以再次写出
		 * close()方法
		 * 		 2.用来关闭流释放资源
		 *		 3.如果是带缓冲区的流对象的close()方法,不但会关闭流,还会在关闭流之前刷新缓冲区,关闭之后不能再写入
		 */
		//把a文件的内容拷贝到b文件中
		
		//1.创建输入流
		BufferedInputStream bis=new BufferedInputStream(new FileInputStream("a.txt"));
		//2.创建输出流
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("b.txt"));
		
		//3.读写操作
		int b=0;
		while ((b=bis.read())!=-1) {
			bos.write(b);
		}
		
		bos.flush();
		//4.关闭流
//		bis.close();
//		bos.close();
	}
}

BufferedOutputStream没有关闭流方法,有flush()方法
在这里插入图片描述
但BufferedOutputStream的父类FilterOutputStream有close()方法

在这里插入图片描述
close()方法调用了flush()方法,也就是说,在关闭流之前会执行最后一次flush()
之后不能在写入数据

在这里插入图片描述

网站文章

  • 线程同步 CCriticalSection(临界区类)

    线程同步 CCriticalSection(临界区类) 当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临界区对象,拥有临界区的线程可以访问被保护起来的资源或代...

    2024-04-01 02:04:19
  • 二维数组详解

    二维数组详解在Java中二维数组被看作为数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果...

    2024-04-01 02:04:11
  • Debug-CDK编译

    问题描述: make: *** No rule to make target ‘…/…/…/…/…/…/…/xxx.c’, needed by ‘Obj/xxx.o’. Stop. 解决方法: 删掉obj文件夹,重新编译

    2024-04-01 02:04:04
  • C++ 派生类覆盖重载基类函数

    派生类希望基类重载函数可见,情况有三种:     a)派生类中覆盖某个版本,则某个版本可见,全部都覆盖重写,则全部版本可见。     b)派生类中一个也不覆盖,则全部基类版本可见。     c)派生类需要添加新的重载版本,同时又需要可见基类的重载版本,此时并不是必须全部覆盖重写全部版本。可在派生类中用using声明基类重载的函数。       说明:对派生类没有重新定义的重载版本的访问实际...

    2024-04-01 02:03:27
  • npm基础

    简要介绍前端发展情况,介绍npm

    2024-04-01 02:03:19
  • 线性基入门

    今天学习了神奇的线性基,主要是在解决异或问题时比较有用。 假如我们的数字的二进制在x位上都是1(这里指所有的数字总共),那么我们线性基的集合就是x个数字,对应的他们最高位的1分别出现在这x个位置,我们...

    2024-04-01 02:03:12
  • 乔治亚理工计算机在线申请,经验分享:佐治亚理工学院CS PhD申请总结

    乔治亚理工计算机在线申请,经验分享:佐治亚理工学院CS PhD申请总结

    经验分享:佐治亚理工学院CS PhD申请总结2020-11-07 493人阅读摘要:经验分享:佐治亚理工学院CS PhD申请总结下午到试验室开启msn和hotmail就收到了GIT的Offer:“.....

    2024-04-01 02:03:04
  • 桌面计算机怎么设置声音,关于电脑自定义声音的设置

    在Windows 7操作系统中,发生某些事件时会播放声音。事件可以是用户执行的操作, 如登录到计算机,或计算机执行的操作,如在收到新电子邮件时发出警报。Windows附带多种针对常见事件的声音方案。此...

    2024-04-01 02:02:29
  • 为什么CPU需要不同的特权等级?

    为什么CPU需要不同的特权等级?

    如下图是一个经典的x86的特权等级示意图,x86有0~3共4级特权等级,但一般只有0级和3级常用。操作系统/内核工作于特权等级0,用户则工作于最低的特权等级3。1. 特权等级是谁实现的?当我们描述特权...

    2024-04-01 02:02:23
  • Python的编码风格是怎么样的?核心要点有这些

    Python的编码风格是怎么样的?核心要点有这些

    Python因为其简洁明了的编码风格和以缩进划分作用域的规则让其在编码时对风格的统一是有非常严格的要求的,下文就将详细说明python的编码风格是怎么样的。

    2024-04-01 02:01:54