美文网首页
JAVA IO OutputStream 解析

JAVA IO OutputStream 解析

作者: ShootHzj | 来源:发表于2017-08-16 21:57 被阅读31次

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.

相关文章

网友评论

      本文标题:JAVA IO OutputStream 解析

      本文链接:https://www.haomeiwen.com/subject/bvlwrxtx.html