uTools-Manuals/docs/java/javax/crypto/CipherOutputStream.html

445 lines
18 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.crypto
</div>
<h2 class="title" title="Class CipherOutputStream">Class CipherOutputStream</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../java/io/OutputStream.html" title="class in java.io">java.io.OutputStream</a></li>
<li>
<ul class="inheritance">
<li><a href="../../java/io/FilterOutputStream.html" title="class in java.io">java.io.FilterOutputStream</a></li>
<li>
<ul class="inheritance">
<li>javax.crypto.CipherOutputStream</li>
</ul> </li>
</ul> </li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../java/io/Closeable.html" title="java.io中的接口">Closeable</a> <a href="../../java/io/Flushable.html" title="java.io中的接口">Flushable</a> <a href="../../java/lang/AutoCloseable.html" title="java.lang中的接口">AutoCloseable</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public class <span class="typeNameLabel">CipherOutputStream</span>
extends <a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></pre>
<div class="block">
<span>CipherOutputStream由OutputStream和Cipher组成以便write方法首先处理数据然后再将它们写入底层的OutputStream。</span>
<span>密码必须在被CipherOutputStream使用之前被完全初始化。</span>
<p> <span>例如如果将密码初始化为加密CipherOutputStream会在写出加密数据之前尝试加密数据。</span> </p>
<p> <span>该类严格遵守其祖先类java.io.OutputStream和java.io.FilterOutputStream的语义特别是失败语义。</span> <span>这个类只有在其祖先类中指定的方法,并覆盖它们全部。</span> <span>此外,此类捕获其祖先类不抛出的所有异常。</span> </p>
<p> <span>对于使用此类的程序员不要使用在此类中未定义或覆盖的方法例如后来添加到其中一个超类的新方法或构造函数因为这些方法的设计和实现不太可能考虑到对CipherOutputStream的安全影响。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../java/io/OutputStream.html" title="java.io中的类"><code>OutputStream</code></a> <a href="../../java/io/FilterOutputStream.html" title="java.io中的类"><code>FilterOutputStream</code></a> <a href="../../javax/crypto/Cipher.html" title="javax.crypto中的类"><code>Cipher</code></a> <a href="../../javax/crypto/CipherInputStream.html" title="javax.crypto中的类"><code>CipherInputStream</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.java.io.FilterOutputStream">
<!-- --> </a> <h3>Fields inherited from class java.io.<a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></h3> <code><a href="../../java/io/FilterOutputStream.html#out">out</a></code></li>
</ul> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#CipherOutputStream-java.io.OutputStream-">CipherOutputStream</a></span>(<a href="../../java/io/OutputStream.html" title="class in java.io">OutputStream</a> os)</code>
<div class="block">
在不指定密码的情况下从OutputStream构造CipherOutputStream。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code> </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#CipherOutputStream-java.io.OutputStream-javax.crypto.Cipher-">CipherOutputStream</a></span>(<a href="../../java/io/OutputStream.html" title="class in java.io">OutputStream</a> os, <a href="../../javax/crypto/Cipher.html" title="class in javax.crypto">Cipher</a> c)</code>
<div class="block">
从OutputStream和Cipher构造一个CipherOutputStream。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#close--">close</a></span>()</code>
<div class="block">
关闭此输出流并释放与此流相关联的任何系统资源。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#flush--">flush</a></span>()</code>
<div class="block">
通过强制已经由封装的密码对象处理的任何缓冲的输出字节被写出来刷新输出流。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#write-byte:A-">write</a></span>(byte[] b)</code>
<div class="block">
<code>b.length</code>字节从指定的字节数组写入此输出流。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#write-byte:A-int-int-">write</a></span>(byte[] b, int off, int len)</code>
<div class="block">
从指定的字节数组写入
<code>len</code>个字节,从偏移
<code>off</code>开始输出到此输出流。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/crypto/CipherOutputStream.html#write-int-">write</a></span>(int b)</code>
<div class="block">
将指定的字节写入此输出流。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../java/lang/Object.html#clone--">clone</a>, <a href="../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../java/lang/Object.html#notify--">notify</a>, <a href="../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../java/lang/Object.html#toString--">toString</a>, <a href="../../java/lang/Object.html#wait--">wait</a>, <a href="../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="CipherOutputStream-java.io.OutputStream-javax.crypto.Cipher-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>CipherOutputStream</h4> <pre>public CipherOutputStream(<a href="../../java/io/OutputStream.html" title="class in java.io">OutputStream</a> os,
<a href="../../javax/crypto/Cipher.html" title="class in javax.crypto">Cipher</a> c)</pre>
<div class="block">
<span>从OutputStream和Cipher构造一个CipherOutputStream。</span>
<br/>
<span>注意如果指定的输出流或密码为空则NullPointerException在使用时可能会被稍后抛出。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>os</code> - OutputStream对象
</dd>
<dd>
<code>c</code> - 一个初始化的Cipher对象
</dd>
</dl> </li>
</ul> <a name="CipherOutputStream-java.io.OutputStream-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>CipherOutputStream</h4> <pre>protected CipherOutputStream(<a href="../../java/io/OutputStream.html" title="class in java.io">OutputStream</a> os)</pre>
<div class="block">
<span>在不指定密码的情况下从OutputStream构造CipherOutputStream。</span>
<span>这具有使用NullCipher构造CipherOutputStream的效果。</span>
<br/>
<span>注意如果指定的输出流为空则使用NullPointerException可能会稍后抛出。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>os</code> - OutputStream对象
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="write-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>write</h4> <pre>public void write(int b)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
将指定的字节写入此输出流。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/io/FilterOutputStream.html#write-int-">write</a></code>
<code><a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>b</code> -
<code>byte</code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误。
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JCE1.2
</dd>
</dl> </li>
</ul> <a name="write-byte:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>write</h4> <pre>public void write(byte[] b)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span><code>b.length</code>字节从指定的字节数组写入此输出流。</span>
<p> <span><code>write</code>的方法<code>CipherOutputStream</code>调用<code>write</code>的三个参数与三个参数的方法<code>b</code> <code>0</code><code>b.length</code></span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/io/FilterOutputStream.html#write-byte:A-">write</a></code>
<code><a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>b</code> - 数据。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>b</code>为空。
</dd>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误。
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JCE1.2
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../javax/crypto/CipherOutputStream.html#write-byte:A-int-int-"><code>write(byte[], int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="write-byte:A-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>write</h4> <pre>public void write(byte[] b,
int off,
int len)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
从指定的字节数组写入
<code>len</code>个字节,从偏移
<code>off</code>开始输出到此输出流。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/io/FilterOutputStream.html#write-byte:A-int-int-">write</a></code>
<code><a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>b</code> - 数据。
</dd>
<dd>
<code>off</code> - 数据中的起始偏移量。
</dd>
<dd>
<code>len</code> - 要写入的字节数。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误。
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JCE1.2
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../java/io/FilterOutputStream.html#write-int-"><code>FilterOutputStream.write(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="flush--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>flush</h4> <pre>public void flush()
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>通过强制已经由封装的密码对象处理的任何缓冲的输出字节被写出来刷新输出流。</span>
<p> <span>由封装密码缓冲并等待被其处理的任何字节将不会被写出。</span> <span>例如,如果封装的密码是块密码,并且使用<code>write</code>方法之一写入的总字节数小于密码的块大小,则不会写出任何字节。</span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/io/Flushable.html#flush--">flush</a></code>在接口
<code><a href="../../java/io/Flushable.html" title="interface in java.io">Flushable</a></code>
</dd>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/io/FilterOutputStream.html#flush--">flush</a></code>在类别
<code><a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误。
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JCE1.2
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../java/io/FilterOutputStream.html#out"><code>FilterOutputStream.out</code></a>
</dd>
</dl> </li>
</ul> <a name="close--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>close</h4> <pre>public void close()
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>关闭此输出流并释放与此流相关联的任何系统资源。</span>
<p> <span>此方法调用封装密码对象的<code>doFinal</code>方法,这将导致处理由封装密码缓冲的任何字节。</span> <span>结果是通过调用此输出流的<code>flush</code>方法来写出来的。</span> </p>
<p> <span>该方法将封装的密码对象重置为初始状态,并调用底层输出流的<code>close</code>方法。</span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/io/Closeable.html#close--">close</a></code>在接口
<code><a href="../../java/io/Closeable.html" title="interface in java.io">Closeable</a></code>
</dd>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/lang/AutoCloseable.html#close--">close</a></code>在界面
<code><a href="../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></code>
</dd>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../java/io/FilterOutputStream.html#close--">close</a></code>
<code><a href="../../java/io/FilterOutputStream.html" title="class in java.io">FilterOutputStream</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误。
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JCE1.2
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../java/io/FilterOutputStream.html#flush--"><code>FilterOutputStream.flush()</code></a>,
<a href="../../java/io/FilterOutputStream.html#out"><code>FilterOutputStream.out</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>