java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

javax.crypto
类 CipherInputStream

java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.FilterInputStream
          继承者 javax.crypto.CipherInputStream
所有已实现的接口:
Closeable

public class CipherInputStream
extends FilterInputStream

CipherInputStream 由一个 InputStream 和一个 Cipher 组成,这样 read() 方法才能返回从基础 InputStream 读入但已经由该 Cipher 另外处理过的数据。在由 CipherInputStream 使用之前,该 Cipher 必须充分初始化。

例如,假设 Cipher 初始化为解密,在返回解密的数据之前,CipherInputStream 将尝试读入数据并将其解密。

此类严格遵守此语义,尤其是其祖先类 java.io.FilterInputStream 和 java.io.InputStream 的失败语义。此类具有在其祖先类中指定的所有方法,并且对所有的这些方法进行了重写。除此之外,此类还对其祖先类未抛出的所有异常进行捕获。特别地,skip 方法跳过,available 方法只计算已由封装的 Cipher 处理过的数据。

对程序员非常重要的一点是,请不要使用未在此类中定义或重写的方法(例如,后来加入到其超类之一中的新方法或构造方法),因为那些方法的设计和实现可能未考虑到对 CipherInputStream 的安全影响。

从以下版本开始:
1.4
另请参见:
InputStream, FilterInputStream, Cipher, CipherOutputStream

字段摘要
 
从类 java.io.FilterInputStream 继承的字段
in
 
构造方法摘要
protected CipherInputStream(InputStream is)
          从 InputStream 构造 CipherInputStream,不指定 Cipher。
  CipherInputStream(InputStream is, Cipher c)
          从 InputStream 和 Cipher 构造 CipherInputStream。
 
方法摘要
 int available()
          返回不发生阻塞地从此输入流读取的字节数。
 void close()
          关闭该输入流并释放任何与该流关联的系统资源。
 boolean markSupported()
          测试该输入流是否支持 markreset 方法以及哪一个方法确实不受支持。
 int read()
          从该输入流读取下一字节数据。
 int read(byte[] b)
          从该输入流将 b.length 个字节数据读入到字节数组中。
 int read(byte[] b, int off, int len)
          从该输入流将 len 个字节数据读入到字节数组中。
 long skip(long n)
          跳过不发生阻塞地从该输入流读取的字节中的 n 个字节的输入。
 
从类 java.io.FilterInputStream 继承的方法
mark, reset
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

CipherInputStream

public CipherInputStream(InputStream is,
                         Cipher c)
从 InputStream 和 Cipher 构造 CipherInputStream。
注:如果指定的输入流或密码为 null,则在后续使用输出流或密码时可能抛出 NullPointerException 异常。

参数:
is - 将被处理的输入流
c - 已初始化的 Cipher 对象

CipherInputStream

protected CipherInputStream(InputStream is)
从 InputStream 构造 CipherInputStream,不指定 Cipher。它与使用 NullCipher 构造 CipherInputStream 具有相同的效果。
注:如果指定的输入流为 null,则在后续使用输出流时可能抛出 NullPointerException 异常。

参数:
is - 将被处理的输入流
方法详细信息

read

public int read()
         throws IOException
从该输入流读取下一字节数据。返回一个 0255 范围内的 int 字节值。如果因为到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或抛出异常之前,此方法将一直阻塞。

覆盖:
FilterInputStream 中的 read
返回:
下一个数据字节;如果已到达流末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2
另请参见:
FilterInputStream.in

read

public int read(byte[] b)
         throws IOException
从该输入流将 b.length 个字节数据读入到字节数组中。

InputStreamread 方法将 b0b.length 作为三个参数来调用 read 方法。

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读入数据的缓冲区。
返回:
读入缓冲区的总字节数,如果由于流末尾已到达而不再有数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2
另请参见:
InputStream.read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
从该输入流将 len 个字节数据读入到字节数组中。在某些输入可用之前,此方法将阻塞。如果第一个参数为 null,则读取和丢弃的字节数最多为 len 个。

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读入数据的缓冲区。
off - 数据的起始偏移量。
len - 读取的最大字节数。
返回:
读入缓冲区的总字节数,如果由于已到达流末尾而不再有数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2
另请参见:
InputStream.read()

skip

public long skip(long n)
          throws IOException
跳过不发生阻塞地从该输入流读取的字节中的 n 个字节的输入。

可能跳过比请求更少的字节数。实际跳过的字节数等于 n 或等于调用 available 的结果,总之都较小。如果 n 为小于零,则不跳过任何字节。

返回实际跳过的字节数。

覆盖:
FilterInputStream 中的 skip
参数:
n - 要跳过的字节数。
返回:
实际跳过的字节数。
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2

available

public int available()
              throws IOException
返回不发生阻塞地从此输入流读取的字节数。InputStreammarkSupported 方法返回 false。此方法应该由子类重写。

覆盖:
FilterInputStream 中的 available
返回:
不发生阻塞地从此输入流读取的字节数。
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2
另请参见:
FilterInputStream.in

close

public void close()
           throws IOException
关闭该输入流并释放任何与该流关联的系统资源。

CipherInputStreamclose 方法调用基础输入流的 close 方法。

指定者:
接口 Closeable 中的 close
覆盖:
FilterInputStream 中的 close
抛出:
IOException - 如果发生 I/O 错误。
从以下版本开始:
JCE1.2
另请参见:
FilterInputStream.in

markSupported

public boolean markSupported()
测试该输入流是否支持 markreset 方法以及哪一个方法确实不受支持。

覆盖:
FilterInputStream 中的 markSupported
返回:
因为此类不支持 markreset 方法,所以返回 false
从以下版本开始:
JCE1.2
另请参见:
InputStream.mark(int), InputStream.reset()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策