为什么Writer有flush()方法,而Reader没有flush()方法?

解决方案 »

  1.   

    写的时候,先写到缓冲区当中,再调用flush( )方法刷到磁盘上;写的时候不也是先写到缓冲区当中吗?
      

  2.   

    写的时候,先写到缓冲区当中,再调用flush( )方法刷到磁盘上;写的时候不也是先写到缓冲区当中吗?
    写的时候先写到缓冲区
      

  3.   

    写的时候,先写到缓冲区当中,再调用flush( )方法刷到磁盘上;写的时候不也是先写到缓冲区当中吗?
    写的时候先写到缓冲区
    笔误,最后一句话应该是:读的时候不也是先读到缓冲区吗?
      

  4.   

    缓冲区就是内存中的一块地方是吧?写的时候我能理解,flush()刷到硬盘上;读的时候,读到缓冲区,供CPU使用,我这样理解,对吗?
      

  5.   

    缓冲区就是内存中的一块地方是吧?写的时候我能理解,flush()刷到硬盘上;读的时候,读到缓冲区,供CPU使用,我这样理解,对吗?
      

  6.   

    缓冲区就是内存中的一块地方是吧?写的时候我能理解,flush()刷到硬盘上;读的时候,读到缓冲区,供CPU使用,我这样理解,对吗?
    缓存区的读写速度高于存储区,刷新是一个缓存和存储区交换数据的过程效率低于直接读写缓存区,系统读写已经优化非必要无需刷新,因为写的时候有数据改变,需要及时数据时所以预留刷新命令。
      

  7.   

    正解!flush()其实是刷新数据到磁盘上
      

  8.   

    因为write写入需要将数据从内存写入到磁盘当中,而读取操作只是将数据读取到内存,并不需要再次将数据写回到磁盘,所以不需要flush操作
      

  9.   

    这是因为flush方法的作用和功能是向外做输出,将内存中的数据提交输出到外部文件当中,在BufferedWriter中,因为是对外做写操作,因此是有提交输出的flush方法的;而在BufferedReader对象中,因为它的作用是用来从外部读取文件内容到内存中,因此不存在向外做提交输出的操作,因此没有flush方法。
      

  10.   

    flush是将缓冲区的内容写到文件中去
      

  11.   

    flush是将缓冲区的内容写到文件中去,其实是从jvm内存到系统内存,再到硬盘,除非你用了“零拷贝”