当前位置:首页 » 编程语言 » flushjava

flushjava

发布时间: 2025-03-03 04:27:01

‘壹’ java ByteArrayOutputStream flush

flush
public void flush()throws IOException
刷新此输出流并强制写出所有缓冲的输出字节。flush 的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。
什么是预期的目标?比如对于输入出流FileOutputStream("1.txt"),文件"1.txt"就是它预期的目标。上体请看下面的程序。
import java.io.*;
public class AboutFlush
{
public static void main(String args[]){
try{
FileInputStream fis=new FileInputStream("1.pdf");
FileOutputStream fos=new FileOutputStream("2.pdf");
byte b[]=new byte[20];
int number;
while((number=fis.read(b))!=-1){
fos.write(b, 0, number);
//flush 你也可以在这里用。但一般不提倡
//将数据先存入缓冲区有利于提高效率
//不过,有时是必要的。
}
fos.flush();//这里,是指将所有的数据,全部写入输出流"2.pdf"
fis.close();
fos.close();
}catch(IOException e){}
}
}
//当然,对于ByteArrayOutputStream来说,它的目标是一个数组,将数据写入
//这个数组。当然,最后可以一次性写入一个输出流(用writeTo方法)。那么
//它的过程是:自主地将数据先写入数组,再全部写入某个输出流。那么,flush
//貌似没有意义了。因为,对于写入内存数组来说,不可能再先缓存进某个
//缓冲区(那样没什么意义)。而ByteArrayOutputStream的预期目标肯定是
//在创建对象时隐式生成的数组缓冲区,而不可能是writeTo的对象(因为这个
//对象是可变的,只有在写入时才指定)。所以,俺认为flush对于
//ByteArrayOutputStream来说,没有意义

‘贰’ java bufferedwriter flush 必要性问题

public class BufferedWriterextends Writer将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。

flush是刷新该流的缓冲,就是将缓冲区里的内容全部刷出去, 这与大缓冲区大小无关。而该类提供的 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。

以上主要来自java api

热点内容
文件夹整理工具 发布:2025-05-02 04:05:41 浏览:467
叉叉助手怎么下脚本 发布:2025-05-02 03:58:19 浏览:439
javaoracle数据库驱动 发布:2025-05-02 03:57:48 浏览:15
canlinux 发布:2025-05-02 03:57:31 浏览:188
安卓手机什么手机好 发布:2025-05-02 03:55:29 浏览:506
编译手机内核有什么用 发布:2025-05-02 03:44:56 浏览:529
谷歌浏览器如何运行js脚本 发布:2025-05-02 03:44:06 浏览:244
博途配置低的电脑安装哪个版本 发布:2025-05-02 03:36:09 浏览:790
网易mc手机怎么免费开服务器 发布:2025-05-02 03:28:39 浏览:100
macpythongui 发布:2025-05-02 03:15:43 浏览:310