outputstream用法,Java中outputstream详解
接下来再来看看 OutputStream 以及子类的相关使用。
对于 OutputStream 主要是字节流类型的输出流。
OutputStream
OutputStream 抽象类是所有字节输出流类的超类。输出流接受输出字节并将它们发送到某个接收器中。 同样该抽象类需要一个子类来继承实现始终提供至少一种写入一个字节输出的方法。
该类的定义:
public abstract class OutputStream implements Closeable, Flushable
抽象类中的方法包括:
从本篇开始尽量使用表格而不使用图片,因为我发现复看我的文章的时候,图片的清晰度真不能看。
修饰符和类型 | 方法 | 描述 |
void | close() | 关闭此输出流并释放与此流关联的所有系统资源。 |
void | flush() | 刷新此输出流并强制写出任何缓冲的输出字节。 |
static OutputStream | nullOutputStream() | 返回一个丢弃所有字节的新 OutputStream。 |
void | write(byte[] b) | 将指定字节数组中的 b.length 个字节写入此输出流。 |
void | write(byte[] b, int off, int len) | 将指定字节数组中的 len 个字节写入此输出流。 |
abstract void | write(int b) | 将指定字节写入此输出流。 |
因为是抽象类,并不能真正的进行操作,只有子类才能执行,接下来我们来看看子类具体实现。
子类实现
ByteArrayOutputStream
这个类实现了一个输出流,其中数据被写入一个字节数组。 缓冲区会随着数据写入而自动增长。 可以使用 toByteArray() 和 toString() 检索数据。 关闭 ByteArrayOutputStream 无效。 可以在流关闭后调用此类中的方法,而不会生成 IOException。
定义:
public class ByteArrayOutputStream extends OutputStream
方法的定义:
演示使用小例子
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { for (byte i = 0; i < 10; i++) { byteArrayOutputStream.write(i); } System.out.println("byteArrayOutputStream.size(): " + byteArrayOutputStream.size()); byte[] array = byteArrayOutputStream.toByteArray(); for (byte b : array) { System.out.print(b + "\t"); }} catch (IOException ex) { System.out.println(ex.getMessage());}
完整代码及运行
FileOutputStream
文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或是否可以创建取决于底层平台。特别是某些平台,一次只允许一个 FileOutputStream(或其他文件写入对象)打开一个文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造函数将失败。 FileOutputStream 用于写入原始字节流,例如图像数据。要写入字符流,请考虑使用 FileWriter。
定义:
public class FileOutputStream extends OutputStream
该类的构造函数:
构造器 | 描述信息 |
FileOutputStream(File file) | 创建一个文件输出流以写入由指定 File 对象表示的文件。 |
FileOutputStream(FileDescriptor fdObj) | 创建一个文件输出流以写入指定的文件描述符,它表示与文件系统中实际文件的现有连接。 |
FileOutputStream(File file, boolean append) | 创建一个文件输出流以写入由指定 File 对象表示的文件。 |
FileOutputStream(String name) | 创建文件输出流以写入具有指定名称的文件。 |
FileOutputStream(String name, boolean append) | 创建文件输出流以写入具有指定名称的文件。 |
对于子类的方法, 除了父类的方法外,又新增了两个方法。新增方法如下:
修饰符和类型 | 方法 | 描述 |
FileChannel | getChannel() | 刷新此输出流并强制写出任何缓冲的输出字节。 |
final FileDescriptor | getFD() | 返回一个丢弃所有字节的新 OutputStream。 |
并重写了 close, write的三个方法。
查看代码:
本文地址:百科问答频道 https://www.neebe.cn/wenda/927371.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!