java 流 flush_Java OutputStream.flush()清空输出流

首页 > 基础教程 > IO流 > OutputStream类

Java OutputStream.flush()清空输出流

定义

public void flush()

参数

无任何参数

返回

无任何返回

异常

IOException:I/O 错误或者流已经关闭。

例子

// 模拟浏览器,给tomcat服务端发送符合http协议的请求消息

public static void main(String[] args) throws IOException

{

Socket s = new Socket("127.0.0.1", 80);

PrintWriter out = new PrintWriter(s.getOutputStream()); //这里的ture表示流会自动刷新,在后面可以不用使用flush()方法

out.println("GET /myweb/test.jsp HTTP/1.1");

out.println("Accept: */*");

out.println("Accept-Language: zh-CN");

out.println("Accept-Encoding: gzip, deflate");

out.println();

out.flush(); // 清空缓存并输出流

InputStream in = s.getInputStream();

byte b[] = new byte[1024];

int leng = 0;

while((leng = in .read(b)) != -1)

{

String str = new String(b, 0, leng);

System.out.println(str);

}

s.close();

}

1. flush()下达一条命令给缓冲区,让它将所储存的数据全部清空,即发送给下一级。

2. flush()刷空输出流,并输出所有被缓存的字节。由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。

3. OutputStream.flush()方法将所有写入到OutputStream的数据冲刷到相应的目标媒介中。比如,如果输出流是FileOutputStream,那么写入到其中的数据可能并没有真正写入到磁盘中。即使所有数据都写入到了FileOutputStream,这些数据还是有可能保留在内存的缓冲区中。通过调用flush()方法,可以把缓冲区内的数据刷新到磁盘(或者网络,以及其他任何形式的目标媒介)中。

首页 > 基础教程 > IO流 > OutputStream类 Java OutputStream.flush()清空输出流 定义 public void flush() 参数 无任何参数 返回 无任何返回 异常 IOException:I/O 错误或者流已经关闭。 例子 // 模拟浏览器,给tomcat服务端发送符合http协议的请求消息 public static void main(String[] args) throws IOException { Socket s = new Socket("127.0.0.1", 80); PrintWriter out = new PrintWriter(s.getOutputStream()); //这里的ture表示流会自动刷新,在后面可以不用使用flush()方法 out.println("GET /myweb/test.jsp HTTP/1.1"); out.println("Accept: */*"); out.println("Accept-Language: zh-CN"); out.println("Accept-Encoding: gzip, deflate"); out.println(); out.flush(); // 清空缓存并输出流 InputStream in = s.getInputStream(); byte b[] = new byte[1024]; int leng = 0; while((leng = in .read(b)) != -1) { String str = new String(b, 0, leng); System.out.println(str); } s.close(); } 1. flush()下达一条命令给缓冲区,让它将所储存的数据全部清空,即发送给下一级。 2. flush()刷空输出流,并输出所有被缓存的字节。由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。 3. OutputStream.flush()方法将所有写入到OutputStream的数据冲刷到相应的目标媒介中。比如,如果输出流是FileOutputStream,那么写入到其中的数据可能并没有真正写入到磁盘中。即使所有数据都写入到了FileOutputStream,这些数据还是有可能保留在内存的缓冲区中。通过调用flush()方法,可以把缓冲区内的数据刷新到磁盘(或者网络,以及其他任何形式的目标媒介)中。
经验分享 程序员 微信小程序 职场和发展