Java中OutputStream使用

Java中OutputStream使用

1. void write(int b)

java 复制代码
outputStream.write(65); // 写入字节 'A'

write(int b)方法将指定的字节写入输出流。参数 b 是一个整数,表示要写入的字节数据。实际写入的是 b 的最低8位。这个方法通常用于写入单个字节的数据。

示例用途: 将单个字节数据写入到输出流中。

java 复制代码
OutputStream outputStream = new FileOutputStream("output.txt");
outputStream.write(65); // 写入字节 'A'
outputStream.close();

2. void write(byte[] b)

java 复制代码
byte[] data = "Hello, world!".getBytes();
outputStream.write(data); // 写入字节数组

write(byte[] b)方法将字节数组 b 中的所有字节写入输出流。这个方法通常用于批量写入数据。

示例用途: 将整个字节数组的数据写入到输出流中。

java 复制代码
OutputStream outputStream = new FileOutputStream("output.txt");
byte[] data = "Hello, world!".getBytes();
outputStream.write(data); // 写入字节数组的数据
outputStream.close();

3. void write(byte[] b, int off, int len)

java 复制代码
byte[] data = "Hello, world!".getBytes();
outputStream.write(data, 0, 5); // 写入字节数组的前5个字节

write(byte[] b, int off, int len)方法将字节数组 b 中从偏移量 off 开始的 len 个字节写入输出流。这个方法允许您指定要写入的数据片段。

示例用途: 写入字节数组的部分数据到输出流中。

java 复制代码
OutputStream outputStream = new FileOutputStream("output.txt");
byte[] data = "Hello, world!".getBytes();
outputStream.write(data, 0, 5); // 写入 "Hello" 的前5个字节
outputStream.close();

4. void flush()

java 复制代码
outputStream.flush();

flush()方法强制将缓冲区中的数据输出到目的地。通常,输出流会在缓冲区填满或关闭时自动刷新,但有时需要手动调用此方法确保数据立即写入目的地。

示例用途: 在写入一部分数据后,确保数据被立即写入到输出流中。

java 复制代码
OutputStream outputStream = new FileOutputStream("output.txt");
outputStream.write(65); // 写入字节 'A'
outputStream.flush(); // 确保 'A' 立即写入到文件中
outputStream.close();

5. void close()

java 复制代码
outputStream.close();

close()方法关闭输出流并释放与之关联的任何系统资源。在使用完输出流后调用此方法是非常重要的,以确保所有数据都已写入目的地并释放相关资源。

示例用途: 在完成数据写入后关闭输出流。

java 复制代码
OutputStream outputStream = new FileOutputStream("output.txt");
outputStream.write("Hello, world!".getBytes());
outputStream.close(); // 关闭输出流
相关推荐
Java水解1 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
大怪v1 小时前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
CYRUS_STUDIO1 小时前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李3 小时前
rootfs-根文件系统详解
linux
洛小豆3 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
惯导马工3 小时前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
前端小张同学3 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole3 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊4 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端