亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

掌握 Java ByteArrayOutputStream:方法、用法与实战示例

掌握 Java ByteArrayOutputStream

ByteArrayOutputStream 位于 java.io,可将数据写入自动扩容的内部字节数组。继承抽象 OutputStream,是内存字节操作的多功能工具。

注意:内部缓冲区按需扩容,通常无需预设容量,除非明确知道所需大小。


创建 ByteArrayOutputStream

导入 java.io.ByteArrayOutputStream 并实例化。默认缓冲区 32 字节:

// 默认大小
ByteArrayOutputStream out = new ByteArrayOutputStream();

可指定初始容量:

// 自定义大小
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);

size 参数设置初始缓冲区字节长度。


ByteArrayOutputStream 关键方法

write() 方法

示例:写数据到 ByteArrayOutputStream

import java.io.ByteArrayOutputStream;
class Main {
    public static void main(String[] args) {
        String data = "This is a line of text inside the string.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            byte[] array = data.getBytes();
            out.write(array);
            String streamData = out.toString();
            System.out.println("Output stream: " + streamData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出

Output stream: This is a line of text inside the string.

write() 将字节数组写入流,toString() 取出文本。


从 ByteArrayOutputStream 访问数据

import java.io.ByteArrayOutputStream;
class Main {
    public static void main(String[] args) {
        String data = "This is data.";
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out.write(data.getBytes());
            byte[] byteData = out.toByteArray();
            System.out.print("Data using toByteArray(): ");
            for (int i = 0; i < byteData.length; i++) {
                System.out.print((char) byteData[i]);
            }
            String stringData = out.toString();
            System.out.println("\nData using toString(): " + stringData);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出

Data using toByteArray(): This is data.
Data using toString(): This is data.

将每字节转字符显示,演示底层数组到文本的映射。


close() 方法

调用 close() 对 ByteArrayOutputStream 无不良影响;关闭后仍可使用。符合内存缓冲区设计,无外部资源需释放。


其他方法

方法描述
size()返回已写入字节数
flush()重置内部缓冲区,实际上清空流

高级用法请参考官方 Java SE 文档:Java ByteArrayOutputStream。

java

  1. 深入理解 Java final 关键字:变量、方法与类的不可变性
  2. Java instanceof 运算符完全指南:用法、继承与接口检查
  3. 精通 Java 继承:核心概念、类型与实战示例
  4. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  5. 精通 Java 匿名内部类:定义、语法与实战示例
  6. Java 单例模式详解:安全实现与使用指南
  7. 精通 Java 反射:运行时检查类、方法与字段
  8. 精通 Java ArrayList:操作、方法与最佳实践
  9. Java Stack 类全面指南:用法、核心方法与实战示例
  10. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除