public class CipherOutputStream
extends FilterOutputStream
java.lang.Object | |||
↳ | java.io.OutputStream | ||
↳ | java.io.FilterOutputStream | ||
↳ | javax.crypto.CipherOutputStream |
CipherOutputStream由OutputStream和Cipher组成,以便write()方法在将数据写出到底层OutputStream之前首先处理数据。 密码必须在被CipherOutputStream使用之前完全初始化。
例如,如果密码初始化为加密,则CipherOutputStream将在写出加密数据之前尝试加密数据。
该类严格遵守其祖先类java.io.OutputStream和java.io.FilterOutputStream的语义,特别是失败语义。 该类完全具有在其祖先类中指定的方法,并覆盖它们全部。 而且,这个类捕获所有祖先类不抛出的异常。
使用这个类的程序员不要使用未在此类中定义或重写的方法(例如稍后将其添加到其中一个超类中的新方法或构造函数),这是非常重要的,因为这些方法的设计和实现不太可能考虑对CipherOutputStream的安全影响。
Inherited fields |
---|
From class java.io.FilterOutputStream
|
Public constructors |
|
---|---|
CipherOutputStream(OutputStream os, Cipher c) 从OutputStream和Cipher构造一个CipherOutputStream。 |
Protected constructors |
|
---|---|
CipherOutputStream(OutputStream os) 从OutputStream构造一个CipherOutputStream而不指定密码。 |
Public methods |
|
---|---|
void |
close() 关闭此输出流并释放与此流关联的所有系统资源。 |
void |
flush() 通过强制所有已被封装密码对象处理的缓冲输出字节被写出来刷新该输出流。 |
void |
write(byte[] b) 将指定字节数组中的 |
void |
write(byte[] b, int off, int len) 将 |
void |
write(int b) 将指定的字节写入此输出流。 |
Inherited methods |
|
---|---|
From class java.io.FilterOutputStream
|
|
From class java.io.OutputStream
|
|
From class java.lang.Object
|
|
From interface java.io.Closeable
|
|
From interface java.io.Flushable
|
|
From interface java.lang.AutoCloseable
|
CipherOutputStream (OutputStream os, Cipher c)
从OutputStream和Cipher构造一个CipherOutputStream。
注意:如果指定的输出流或密码为空,则在使用它们时可能会抛出NullPointerException。
Parameters | |
---|---|
os |
OutputStream : the OutputStream object |
c |
Cipher : an initialized Cipher object |
CipherOutputStream (OutputStream os)
从OutputStream构造一个CipherOutputStream而不指定密码。 这具有使用NullCipher构造CipherOutputStream的效果。
注意:如果指定的输出流为null,则在使用NullPointerException时可能会稍后抛出它。
Parameters | |
---|---|
os |
OutputStream : the OutputStream object |
void close ()
关闭此输出流并释放与此流关联的所有系统资源。
此方法调用封装密码对象的doFinal
方法,这会导致处理由封装密码缓冲的任何字节。 通过调用此输出流的flush
方法写出结果。
此方法重置封装的密码对象到其初始状态并调用 close
基础输出流的方法。
Throws | |
---|---|
IOException |
if an I/O error occurs. |
void flush ()
通过强制所有已被封装密码对象处理的缓冲输出字节被写出来刷新该输出流。
封装密码缓冲的任何字节并等待其处理,不会被写出。 例如,如果封装密码是分组密码,并且使用write
方法之一写入的总字节数小于密码的分组大小,则不会写出字节。
Throws | |
---|---|
IOException |
if an I/O error occurs. |
void write (byte[] b)
将 b.length
字节从指定的字节数组写入此输出流。
该 write
的方法 CipherOutputStream
调用 write
的三个参数与三个参数的方法 b
, 0
,并 b.length
。
Parameters | |
---|---|
b |
byte : the data. |
Throws | |
---|---|
NullPointerException |
if b is null. |
IOException |
if an I/O error occurs. |
也可以看看:
void write (byte[] b, int off, int len)
将 len
字节从指定的字节数组开始,偏移量为 off
写入此输出流。
Parameters | |
---|---|
b |
byte : the data. |
off |
int : the start offset in the data. |
len |
int : the number of bytes to write. |
Throws | |
---|---|
IOException |
if an I/O error occurs. |
void write (int b)
将指定的字节写入此输出流。
Parameters | |
---|---|
b |
int : the byte . |
Throws | |
---|---|
IOException |
if an I/O error occurs. |