关于java中输出流flush()方法(java使用输出流的基本步骤)
2023-05-15 本站作者 【 字体:大 中 小 】
在java开发中,有时我们会进行流的操作,所以可能会经常遇到这样一段代码
out.flush();out.close();有时我们只是大概看懂这些,却不知道其中的原理性东西,下面就来理解一下:flush()这个函数是清空的意思,用于清空缓冲区的数据流,进行流的操作时,数据先被读到内存中,然后再用数据写到文件中,那么当你数据读完时,我们如果这时调用close()方法关闭读写流,这时就可能造成数据丢失,为什么呢,因为,读入数据完成时不代表写入数据完成,一部分数据可能会留在缓存区中,为了理解这个问题,我们举一个例子:
比如,在农村,几乎每家都有抽水机,抽水机的作用是什么呢,就是把水井里的水抽到水缸中,这时我们就会用水管连接抽水机和水缸(水管就好比是缓冲区),当我们想把水井中的水都抽到水缸中时,我们就让抽水机工作抽水,如果我们发现水井里的水刚好抽完时,我们就会关掉抽水机的开关停止抽水,那么这时,管道里就会遗留一部分水,抽水就是读数据,水缸进水就是写数据,水管充当缓存区的角色,不知道这样是不是具象化了呢
那么这样一来我们如果中途调用close()方法,输出区也还是有数据的,就像水缸里有水,只是在缓冲区遗留了一部分,这时如果我们先调用flush()方法,就会强制把数据输出,缓存区就清空了,最后再关闭读写流调用close()就完成了。
这样列举是不是对PrintWriter中的方法有有所理解了呢。那么问题又来了,我们平时用的flush()和这里的flush()是不是一样的呢?这个就先思考一下
猜你喜欢
驱动精灵不联网能装驱动吗驱动精灵不联网装驱动详情
电脑无法格式化手机内存卡(电脑无法格式化手机内存卡吗)
cad2010图层快捷键(cad2014图层快捷键)
金蝶帐套数据如何导出(金蝶k3在安全模式下如何导出数据)
6s辅助功能快捷键(iphone6辅助键怎么调出来)
wps怎么设置表格(wps怎么设置表格整体居中)
dsp如何设置音场(dsp声道设置)
7.15萨满天赋(wow70级萨满天赋)
程咬金出减cd铭文(程咬金又肉又有输出的铭文)
win7电脑读取u盘很慢(电脑读取u盘慢什么问题)
2022年城镇平均工资出炉 2022年房地产业平均工资均为下降
一夜醒来欠了地铁600多万 广州地铁回应乘客欠600多万巨款
雷丁汽车申请破产是怎么回事 雷丁汽车申请破产
巴厘岛国内出游热度并无明显下降 预计到6-7月份会迎来旺季
男子蹦极庆祝离婚绳子断裂坠湖是什么情况 男子蹦极庆祝离婚绳子断裂坠湖最后怎么样了
生四胞胎后又怀四胞胎女子终止妊娠是什么情况 终止妊娠是什么意思
上海20岁女子被3万卖到安徽当新娘 买方父子也双双获刑一年九个月
男子蹦极庆祝离婚绳子断裂坠湖 男子脖子和腰椎骨折
上海20岁女子被3万卖到安徽当新娘是真的吗 上海20岁女子被3万卖到安徽当新娘法律如何判
官方回应一夜醒来欠地铁600多万 该网友持手机NFC卡显示异常