JAVA IO OutputStream 解析

Java.io.OutputStream类声明了三个基本方法用来把byte数据写入到流中。当然也有用于关闭和刷新的流

public abstract void write(int b) throws IOException
public void write(byte[] data) throws IOException
public void write(byte[] data, int offset, int length) throws IOException
public void flush() throws IOException
public void close() throws IOException
OutputStreams是一个抽象类,子类提供方法的实现。大多数情况下,你只需要知道你处理的对象是一个OutputStream就足够了。
OutputStream中最基本的方法是write()

public abstract void write(int b) throws IOException
这个方法书写了一个无符号byte(0-255),如果你传入了大于255或者小于0的数值,会对256取模直到得到一个合适的值。
通常来说,对大量的数据,用byte来传递会更快一些。这正是两个write方法的用途
第一个写入整个byte数组。第二个只写入数组的一部分,从offset开始写入length长度的数据。
相反地,如果你尝试一次性写入太多的数据,性能上就会出现问题。文件最好一次一次地写入小的块,典型地数值像512,1024,2048.网络连接通常只需要更小的块,128或者256.
输出流缓冲区用来提高性能。比起把每一个字节送到它想去的终点,字节们先在内存缓冲区中集合。当缓冲区被填满,数据被传送出去。flush方法强迫缓冲区没有满的时候输出。
如果你只使用流很短的时间,你不需要明确地调用flush方法。它应该在流关闭的时候被flush。一旦你关闭了流,你就不能再向其中写入数据,如果你尝试这么做,就会引起IOException.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # 3.1 File # ## 3.1.1 File基本概念 ## 1.基本概念 -File类用于表示文件(目录)...
    闫子扬阅读 3,411评论 0 0
  • IO简单概述 IO解决问题 : 解决设备与设备之间的数据传输问题(硬盘 -> 内存 内存 -> 硬盘) 读和写文...
    奋斗的老王阅读 8,765评论 0 53
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序运行的过程中,可能需要对一些设备进...
    征程_Journey阅读 4,544评论 0 1
  • UIButton在开发中经常使用,默认布局是左image右title,实际开发中常常需要上image下title,...
    Hardy_Hu阅读 11,644评论 0 5
  • 希望在未来的那一天,我牵着你的手,一步一步的走向黄昏。
    岚A岚阅读 1,643评论 0 1

友情链接更多精彩内容