关于java中输出流flush()方法
来源:互联网 发布:appserv是什么软件 编辑:程序博客网 时间:2024/05/17 00:57
在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;
- }
- }
- }
阅读全文
0 0
- 关于java中输出流flush()方法
- 关于java中输出流flush()方法
- Java中输出流out.flush()方法理解
- Java 输出流中的flush方法
- java 中flush()方法
- java中 flush()方法
- 关于java I/O中flush方法作用的理解
- Java IO:IO流中的flush方法 .
- Java中的“流”的flush方法
- Java IO流中的flush()方法
- 关于Hibernate Session.flush()方法
- 深入解析Java中Flushable接口的flush方法
- java的输出中的flush的目的
- Java流--flush()
- 关于java中输入和输出流的见解(容易记不混淆的方法)
- IO流中flush()和close()方法的区别
- 解密Java IO流中的flush()方法的由来
- java字符流操作flush()方法及其注意事项
- 简单进度条的实现
- static和extern简单使用(要使用一个东西,先了解其作用)
- 文件aidl的使用方法
- something useful about cmd
- 使用大于 16MB 的闪存时, Zynq 和 QSPI 的复位要求
- 关于java中输出流flush()方法
- Jzoj4699 Password
- 专有云,激发政企大脑的潜能
- DPDK-实战之helloworld
- js设置手机号中间几位为隐藏星代替 (正则)
- 实现一个高度可定制化的Titlebar
- Datagrid 的 deleteRow、insertRow使用
- servlet context 和 servlet config
- GitHub远程仓库的创建以及本地仓库与远程仓库同步(文字+图解)