|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 CipherOutputStream
java.lang.Object java.io.OutputStream java.io.FilterOutputStream javax.crypto.CipherOutputStream
-
public class CipherOutputStream
- extends FilterOutputStream
CipherOutputStream 由一个 OutputStream 和一个 Cipher 组成,这样 write() 方法才能在将数据写出到基础 OutputStream 之前先对该数据进行处理。在由 CipherOutputStream 使用之前,密码必须充分初始化。
例如,假设密码初始化为加密,CipherOutputStream 将在写出该加密数据之前,尝试加密数据。
此类严格遵守此语义,尤其是其祖先类 java.io.OutputStream 和 java.io.FilterOutputStream 的失败语义。此类具有在其祖先类中指定的所有方法,并且对所有的这些方法进行了重写。除此之外,此类还对其祖先类未抛出的所有异常进行捕获。
对程序员非常重要的一点是,不要使用未在此类中定义或重写的方法(例如,后来加入到某个超类的新方法或构造方法),因为那些方法的设计和实现有可能未考虑到对 CipherOutputStream 的安全影响。
- 从以下版本开始:
- 1.4
- 另请参见:
-
OutputStream
,FilterOutputStream
,Cipher
,CipherInputStream
字段摘要 |
---|
从类 java.io.FilterOutputStream 继承的字段 |
---|
out |
构造方法摘要 | |
---|---|
protected |
CipherOutputStream(OutputStream os) 从 OutputStream 构造 CipherOutputStream,不指定 Cipher。 |
|
CipherOutputStream(OutputStream os, Cipher c) 从 OutputStream 和 Cipher 构造 CipherOutputStream。 |
方法摘要 | |
---|---|
void |
close() 关闭此输出流并释放任何与此流关联的系统资源。 |
void |
flush() 强制写出已由封装的密码对象处理的任何缓存输出字节来刷新此输出流。 |
void |
write(byte[] b) 从指定的字节数组中将 b.length 个字节写入此输出流。 |
void |
write(byte[] b, int off, int len) 将指定的字节数组中从 off 偏移量开始的 len 个字节写入此输出流。 |
void |
write(int b) 将指定的字节写入此输出流。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
CipherOutputStream
public CipherOutputStream(OutputStream os, Cipher c)
-
从 OutputStream 和 Cipher 构造 CipherOutputStream。
注:如果指定的输出流或密码为 null,则在后续使用输出流或密码时可能抛出 NullPointerException 异常。- 参数:
-
os
- OutputStream 对象 -
c
- 已初始化的 Cipher 对象
CipherOutputStream
protected CipherOutputStream(OutputStream os)
-
从 OutputStream 构造 CipherOutputStream,不指定 Cipher。这与使用 NullCipher 构造 CipherOutputStream 具有相同的效果。
注:如果指定的输出流为 null,则在后续使用输出流时可能抛出 NullPointerException 异常。- 参数:
-
os
- OutputStream 对象
方法详细信息 |
---|
write
public void write(int b) throws IOException
- 将指定的字节写入此输出流。
-
- 覆盖:
-
类
FilterOutputStream
中的write
-
- 参数:
-
b
-byte
。 - 抛出:
-
IOException
- 如果发生 I/O 错误。 - 从以下版本开始:
- JCE1.2
write
public void write(byte[] b) throws IOException
-
从指定的字节数组中将
b.length
个字节写入此输出流。CipherOutputStream
的write
方法调用带三个参数的write
方法,三个参数为b
、0
和b.length
。 -
- 覆盖:
-
类
FilterOutputStream
中的write
-
- 参数:
-
b
- 数据。 - 抛出:
-
NullPointerException
- 如果b
为 null。 -
IOException
- 如果发生 I/O 错误。 - 从以下版本开始:
- JCE1.2
- 另请参见:
-
write(byte[], int, int)
write
public void write(byte[] b, int off, int len) throws IOException
-
将指定的字节数组中从
off
偏移量开始的len
个字节写入此输出流。 -
- 覆盖:
-
类
FilterOutputStream
中的write
-
- 参数:
-
b
- 数据。 -
off
- 数据中的初始偏移量。 -
len
- 要写入的字节数。 - 抛出:
-
IOException
- 如果发生 I/O 错误。 - 从以下版本开始:
- JCE1.2
- 另请参见:
-
FilterOutputStream.write(int)
flush
public void flush() throws IOException
-
强制写出已由封装的密码对象处理的任何缓存输出字节来刷新此输出流。
由封装的密码缓存并等待由其处理的任何字节将不被写出。例如,假设封装的密码为块密码,并且使用某个
write
方法写入的总字节数小于密码的块大小,将不写出任何字节。 -
- 指定者:
-
接口
Flushable
中的flush
- 覆盖:
-
类
FilterOutputStream
中的flush
-
- 抛出:
-
IOException
- 如果发生 I/O 错误。 - 从以下版本开始:
- JCE1.2
- 另请参见:
-
FilterOutputStream.out
close
public void close() throws IOException
-
关闭此输出流并释放任何与此流关联的系统资源。
此方法调用封装密码对象的
doFinal
方法,它使得由该封装密码缓存的任何字节都被处理。通过调用此输出流的flush
方法写出结果。此方法将封装密码对象重置为其初始状态并调用基础输出流的
close
方法。 -
- 指定者:
-
接口
Closeable
中的close
- 覆盖:
-
类
FilterOutputStream
中的close
-
- 抛出:
-
IOException
- 如果发生 I/O 错误。 - 从以下版本开始:
- JCE1.2
- 另请参见:
-
FilterOutputStream.flush()
,FilterOutputStream.out
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |