简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者
博主新书推荐:《Android系统多媒体进阶实战》🚀
Android Audio工程师专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀
Android多媒体专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀
推荐1:车载系统实战课:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀
推荐2:HIDL与AIDL实战课:Android14 Binder之HIDL与AIDL通信实战课 🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
🍉🍉🍉文章目录🍉🍉🍉
🌻1. 前言
本篇目的:Java字节流之OutputStream:用法实例
🌻2. Java字节流OutputStream介绍
-
基本概念
OutputStream是Java IO抽象字节输出流,用于按字节写出数据,支持文件、网络、内存等多种目标。 -
功能
提供write、flush、close等方法,支持单字节或批量写出,可与缓冲包装类组合提升性能。 -
使用限制
需手动关闭流;默认无缓冲,大量小写效率低。 -
性能特性
直接面向字节,低层高效;配合BufferedOutputStream可减少系统调用次数。 -
使用场景
文件写入、网络发送、二进制生成、序列化输出。
🌻3. 代码实例
🌻3.1 使用FileOutputStream写入文件
-
应用场景
一次性写入字节数组到文件。 -
用法实例
import java.io.*; public class FileWriteDemo { public static void main(String[] args) throws IOException { try (OutputStream out = new FileOutputStream("demo.txt")) { out.write("Hello OutputStream".getBytes()); } } }
输出文件内容:
Hello OutputStream
🌻3.2 使用BufferedOutputStream提升写出效率
-
应用场景
大文件批量写出。 -
用法实例
import java.io.*; public class BufferedWriteDemo { public static void main(String[] args) throws IOException { try (OutputStream out = new BufferedOutputStream(new FileOutputStream("big.bin"))) { byte[] data = new byte[8192]; for (int i = 0; i < data.length; i++) data[i] = (byte) i; out.write(data); } } }
生成8192字节文件
🌻3.3 使用ByteArrayOutputStream构建内存字节数组
-
应用场景
在内存中拼接二进制数据后统一写出。 -
用法实例
import java.io.*; public class ByteArrayDemo { public static void main(String[] args) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); out.write(0x48); out.write(0x65); byte[] bytes = out.toByteArray(); System.out.println(new String(bytes)); } }
输出:
He
🌻3.4 字节流OutputStream总结
关键词 | 功能描述 | 典型应用 |
---|---|---|
OutputStream | 字节输出抽象 | 文件、网络、内存写出 |
write | 写出字节数组 | 批量数据输出 |
BufferedOutputStream | 缓冲装饰提升性能 | 大文件高效写出 |
FileOutputStream | 文件写出实现 | 磁盘文件输出 |