Java IO字节输出流常见类进行分析(三)
来源:互联网 发布:软件需求 功能需求 编辑:程序博客网 时间:2024/05/19 16:20
一、OutputStream
一个抽象类,所有字节输出流的父类,一个输出流可以接受要输出的字节和发送到目的位置。
write(int):将一个字节输出。
flush():刷出数据,将缓冲区的数据刷出到目的地。
close():关闭流,是否系统资源,关闭之后不能重复打开并接不能重复打开。
二、ByteArrayOutputStream
将数据写入到数组中,缓冲区自动的增长。关闭流没有影响,不会抛出IOException。
看一下同步部分方法:
//字节数组扩容方法private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = buf.length; int newCapacity = oldCapacity << 1;//增加原来的2倍 if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); buf = Arrays.copyOf(buf, newCapacity);//复制数据 } private static int hugeCapacity(int minCapacity) { if (minCapacity < 0) // overflow throw new OutOfMemoryError(); return (minCapacity > MAX_ARRAY_SIZE) ? Integer.MAX_VALUE : MAX_ARRAY_SIZE; } public synchronized void write(int b) { ensureCapacity(count + 1); buf[count] = (byte) b;//保存在缓冲区 count += 1;//长度自增 } public synchronized void reset() { count = 0;//置为0 } public synchronized int size() { return count; //大小 } //将字节数组转换成String public synchronized String toString() { return new String(buf, 0, count); }
FileOutputStream和ObjectOutputSteam与FileInputStream,ObjectOutputStream类似,将输入,输出的方向改变,内部的实现原理一样。
0 0
- Java IO字节输出流常见类进行分析(三)
- Java IO字节输入流常见类进行分析(一)
- Java IO字节输入流常见类进行分析(二)
- Java IO字符流常见类进行分析(四)
- Java学习笔记之IO(三):OutputStream输出字节流
- java IO操作与字节流(三)文件输入流与输出流
- java IO字节流和字符流常见类总结
- java-IO流2(输出字节流)
- Java IO字节输出流的总结
- Java基础---IO流三(字节流& 字符流)
- java基础<IO输出与输入>--->IO流<字节流>
- java IO (三) 字节流与缓冲
- java IO 三(字节流的使用)
- Java-IO(三)——字节流
- IO流(字节输出流)
- Java IO流 ---字节流 案例分析
- IO流---字节输出流
- 6.Java基础:常见IO流----->字节流:FileInputStream、FileOutputStream
- asp.net mvc 菜鸟常犯错误总结
- 函数指针和回调函数
- JNDI 之web项目数据源配置
- 关于OKHttp的一些理解
- Catch That Cow(HDU 2717)
- Java IO字节输出流常见类进行分析(三)
- Android 5.0以下XML定义的drawable不识别?attr/属性的解决思路
- A very hard Aoshu problem HDU-4403
- TCP在握手、挥手或连接已建立时,如果发生意外会怎样?
- W3C 不要再使用废弃的 HTML 标签
- Python HackerRank|The Minion Game
- html5+js拖拽上传
- 浅谈什么是MVC设计模式
- ACM 海贼王之伟大航路(深搜剪枝)