当前所在位置: 首页 > 数码科技 > 正文

关于java中输出流flush()方法(java使用输出流的基本步骤)

2023-05-15 本站作者 【 字体:

在java开发中,有时我们会进行流的操作,所以可能会经常遇到这样一段代码

out.flush();out.close();
有时我们只是大概看懂这些,却不知道其中的原理性东西,下面就来理解一下:

flush()这个函数是清空的意思,用于清空缓冲区的数据流,进行流的操作时,数据先被读到内存中,然后再用数据写到文件中,那么当你数据读完时,我们如果这时调用close()方法关闭读写流,这时就可能造成数据丢失,为什么呢,因为,读入数据完成时不代表写入数据完成,一部分数据可能会留在缓存区中,为了理解这个问题,我们举一个例子:

比如,在农村,几乎每家都有抽水机,抽水机的作用是什么呢,就是把水井里的水抽到水缸中,这时我们就会用水管连接抽水机和水缸(水管就好比是缓冲区),当我们想把水井中的水都抽到水缸中时,我们就让抽水机工作抽水,如果我们发现水井里的水刚好抽完时,我们就会关掉抽水机的开关停止抽水,那么这时,管道里就会遗留一部分水,抽水就是读数据,水缸进水就是写数据,水管充当缓存区的角色,不知道这样是不是具象化了呢

那么这样一来我们如果中途调用close()方法,输出区也还是有数据的,就像水缸里有水,只是在缓冲区遗留了一部分,这时如果我们先调用flush()方法,就会强制把数据输出,缓存区就清空了,最后再关闭读写流调用close()就完成了。

 public class PrintWriter extends Writer {    protected Writer out;/** Checks to make sure that the stream has not been closed */    private void ensureOpen() throws IOException {        if (out == null)            throw new IOException("Stream closed");    }    /**     * Flushes the stream.     * @see #checkError()     */    public void flush() {        try {            synchronized (lock) {                ensureOpen();                out.flush();            }        }        catch (IOException x) {            trouble = true;        }    }}
这是JDK中PrintWriter类提供的flush方法,如上面注释所说,ensureOpen()方法是用于确保该流没有被关闭,如果没有关闭则执行flush方法中的out.flush();

这样列举是不是对PrintWriter中的方法有有所理解了呢。那么问题又来了,我们平时用的flush()和这里的flush()是不是一样的呢?这个就先思考一下

阅读全文
相关推荐

2022年城镇平均工资出炉 2022年房地产业平均工资均为下降

2022年城镇平均工资出炉 2022年房地产业平均工资均为下降
5月9日,国家统计局发布2022年全国城镇单位就业人员平均工资数据。  2022年全国城镇非私营单位就业人员年平均工资为114029元,年平均工资最高的仍然是信息传输、软件和信息技术服务业从业人员,而从增速上看,金融业反超信息传输、软件和信息技术服务业,以同比增长15.6%的速度,位居第一。

一夜醒来欠了地铁600多万 广州地铁回应乘客欠600多万巨款

一夜醒来欠了地铁600多万 广州地铁回应乘客欠600多万巨款
网友一觉醒来发现欠了地铁600多万,这是带走了一节车厢还是请全线免费坐地铁了?记者联系上发帖网友,其表示,事情仍在处理当中。从其社交平台发布的内容来看,搭乘的应是广州地铁。  一夜醒来欠了地铁600多万  5月8日,一则“一夜醒来欠了地铁600多万”的消息,引发网友广泛关注。发帖网友“默默无闻”

雷丁汽车申请破产是怎么回事 雷丁汽车申请破产

雷丁汽车申请破产是怎么回事 雷丁汽车申请破产
近年来,经历了疫情之后,不仅仅是个人的生意越来越难做了,公司的经营也越来越困难。近日,雷丁汽车申请破产的新闻登上热搜,引起关注,一起来看看是是怎么回事。  日前,雷丁汽车集团有限公司新增一则破产审查案件。破产申请和被申请人均为雷丁汽车,经办法院为山东省潍坊市昌乐县人民法院。据公开信息,今年以来雷

巴厘岛国内出游热度并无明显下降 预计到6-7月份会迎来旺季

巴厘岛国内出游热度并无明显下降 预计到6-7月份会迎来旺季
两名中国游客在印尼巴厘岛某酒店内不幸身亡,连日来备受关注。多家旅行机构和平台工作人员表示,这几天国内咨询去巴厘岛旅游的并没有因此明显减少,根据往年情况,预计到6-7月份会迎来旺季。  百度指数显示,巴厘岛旅游的搜索指数从四月底以来呈现波动上升的趋势,相关资讯的热度也自5月3日以来急剧上涨。  据

男子蹦极庆祝离婚绳子断裂坠湖是什么情况 男子蹦极庆祝离婚绳子断裂坠湖最后怎么样了

男子蹦极庆祝离婚绳子断裂坠湖是什么情况 男子蹦极庆祝离婚绳子断裂坠湖最后怎么样了
近日,巴西一位22岁男子为了庆祝离婚去蹦极,结果绳子断裂,掉进了泻湖里。具体男子蹦极庆祝离婚绳子断裂坠湖是什么情况?男子蹦极庆祝离婚绳子断裂坠湖最后怎么样了?一起来了解。男子蹦极庆祝离婚绳子断裂坠湖是什么情况据外媒报道,巴西一位22岁男子为了庆祝离婚而去蹦极,结果绳子断裂。他从近70英尺(约21米)

生四胞胎后又怀四胞胎女子终止妊娠是什么情况 终止妊娠是什么意思

生四胞胎后又怀四胞胎女子终止妊娠是什么情况 终止妊娠是什么意思
近日,浙江一女子因为生完四胞胎又怀上四胞胎,引发广大网友的关注。网友们有的羡慕该女子多子多福,有的质疑家庭负担过重。最新消息,生四胞胎后又怀四胞胎女子决定终止妊娠。那么,生四胞胎后又怀四胞胎女子终止妊娠是什么情况?终止妊娠是什么意思?下面一起来看看。  近日,浙江一女子称生完四胞胎又怀四胞胎引发

上海20岁女子被3万卖到安徽当新娘 买方父子也双双获刑一年九个月

上海20岁女子被3万卖到安徽当新娘 买方父子也双双获刑一年九个月
拐卖人口不仅违法,而且还违背了其他的意愿,以他人生命作为交易的筹码,从而获取暴利!实在可恨!这不上海20岁女子被3万卖到安徽当新娘,买方父子也双双获刑一年九个月,想知道具体详情请看以下介绍。  上海20岁女子被3万卖到安徽当新娘  上海一20岁的女子,属于精神发育迟滞者,患有三级智力残疾,而后家

男子蹦极庆祝离婚绳子断裂坠湖 男子脖子和腰椎骨折

男子蹦极庆祝离婚绳子断裂坠湖 男子脖子和腰椎骨折
男子蹦极庆祝离婚绳子断裂坠湖是怎么回事?男子脖子和腰椎骨折是什么情况?据报道,巴西一位22岁男子为了庆祝离婚而去蹦极,结果绳子断裂。他从近70英尺(约21米)的高空掉下,最终掉进了泻湖,导致脖子和腰椎骨折以及背部和脸部等受伤,目前正在接受治疗。  男子蹦极庆祝离婚绳子断裂坠湖  5月8日消息,很

上海20岁女子被3万卖到安徽当新娘是真的吗 上海20岁女子被3万卖到安徽当新娘法律如何判

上海20岁女子被3万卖到安徽当新娘是真的吗 上海20岁女子被3万卖到安徽当新娘法律如何判
据说,上海20岁女子被3万卖到安徽当新娘?这是真的吗?据上海警方近日破获一起拐卖妇女案,即一位上海20岁女子被3万卖到安徽当新娘。那么,上海20岁女子被3万卖到安徽当新娘法律如何判?一起来了解。上海20岁女子被3万卖到安徽当新娘是真的吗2021年6月,魏先生向上海奉贤警方报案,称自己的女儿小娇很可能

官方回应一夜醒来欠地铁600多万 该网友持手机NFC卡显示异常

官方回应一夜醒来欠地铁600多万 该网友持手机NFC卡显示异常
5月8日,“一夜醒来欠了地铁600多万”的相关词条登上微博热搜,引发广泛关注和热议。发布帖子的网友“默默无闻”IP显示为广东。其表示,自己7日是能进站不能出站,服务中心半天没解决,想着也就是故障最多扣全程费用,没想到8日非但没解决,问题更严重了,“一夜醒来欠了地铁600多万,我是承包了一段地铁,
本文Tag