JavaTM 2 Platform
Standard Ed. 5.0

类 java.nio.ByteBuffer
的使用

使用 ByteBuffer 的软件包
java.lang 提供利用 Java 编程语言进行程序设计的基础类。 
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 
java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的选择器。 
java.nio.charset 定义用来在字节和 Unicode 字符之间转换的 charset、解码器和编码器。 
java.security 为安全框架提供类和接口。 
javax.crypto 为 cryptographic(加密)操作提供类和接口。 
javax.net.ssl 提供用于安全套接字包的类。 
 

java.langByteBuffer 的使用
 

参数类型为 ByteBufferjava.lang 中的方法
protected  Class<?> ClassLoader.defineClass(String name, ByteBuffer b, ProtectionDomain protectionDomain)
          使用可选的 ProtectionDomainByteBuffer 转换为 Class 类的实例。
 

java.nioByteBuffer 的使用
 

java.nioByteBuffer 的子类
 class MappedByteBuffer
          直接字节缓冲区,其内容是文件的内存映射区域。
 

返回 ByteBufferjava.nio 中的方法
static ByteBuffer ByteBuffer.allocate(int capacity)
          分配一个新的字节缓冲区。
static ByteBuffer ByteBuffer.allocateDirect(int capacity)
          分配新的直接字节缓冲区。
abstract  ByteBuffer ByteBuffer.asReadOnlyBuffer()
          创建共享此缓冲区内容的新的只读字节缓冲区。
abstract  ByteBuffer ByteBuffer.compact()
          压缩此缓冲区(可选操作)
abstract  ByteBuffer ByteBuffer.duplicate()
          创建共享此缓冲区内容的新的字节缓冲区。
 ByteBuffer ByteBuffer.get(byte[] dst)
          相对批量 get 方法。
 ByteBuffer ByteBuffer.get(byte[] dst, int offset, int length)
          相对批量 get 方法。
 ByteBuffer ByteBuffer.order(ByteOrder bo)
          修改此缓冲区的字节顺序。
abstract  ByteBuffer ByteBuffer.put(byte b)
          相对 put 方法(可选操作)
 ByteBuffer ByteBuffer.put(byte[] src)
          相对批量 put 方法(可选操作)
 ByteBuffer ByteBuffer.put(byte[] src, int offset, int length)
          相对批量 put 方法(可选操作)
 ByteBuffer ByteBuffer.put(ByteBuffer src)
          相对批量 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.put(int index, byte b)
          绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putChar(char value)
          用来写入 char 值的相对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putChar(int index, char value)
          用于写入 char 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putDouble(double value)
          用于写入 double 值的相对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putDouble(int index, double value)
          用于写入 double 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putFloat(float value)
          用于写入 float 值的相对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putFloat(int index, float value)
          用于写入 float 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putInt(int value)
          用于写入 int 值的相对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putInt(int index, int value)
          用于写入 int 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putLong(int index, long value)
          用于写入 long 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putLong(long value)
          用于写入 long 值(可先操作) 的相对 put 方法。
abstract  ByteBuffer ByteBuffer.putShort(int index, short value)
          用于写入 short 值的绝对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.putShort(short value)
          用于写入 short 值的相对 put 方法(可选操作)
abstract  ByteBuffer ByteBuffer.slice()
          创建新的字节缓冲区,其内容是此缓冲区内容的共享子序列。
static ByteBuffer ByteBuffer.wrap(byte[] array)
          将字节数组包装到缓冲区中。
static ByteBuffer ByteBuffer.wrap(byte[] array, int offset, int length)
          将字节数组包装到缓冲区中。
 

参数类型为 ByteBufferjava.nio 中的方法
 int ByteBuffer.compareTo(ByteBuffer that)
          将此缓冲区与另一个缓冲区进行比较。
 ByteBuffer ByteBuffer.put(ByteBuffer src)
          相对批量 put 方法(可选操作)
 

java.nio.channelsByteBuffer 的使用
 

参数类型为 ByteBufferjava.nio.channels 中的方法
 int ReadableByteChannel.read(ByteBuffer dst)
          将字节序列从此通道中读入给定的缓冲区。
abstract  int FileChannel.read(ByteBuffer dst)
          将字节序列从此通道读入给定的缓冲区。
abstract  int SocketChannel.read(ByteBuffer dst)
           
abstract  int DatagramChannel.read(ByteBuffer dst)
          从此通道读取数据报。
 long ScatteringByteChannel.read(ByteBuffer[] dsts)
          将字节序列从此通道读入给定的缓冲区。
 long FileChannel.read(ByteBuffer[] dsts)
          将字节序列从此通道读入给定的缓冲区。
 long SocketChannel.read(ByteBuffer[] dsts)
           
 long DatagramChannel.read(ByteBuffer[] dsts)
          从此通道读取数据报。
 long ScatteringByteChannel.read(ByteBuffer[] dsts, int offset, int length)
          将字节序列从此通道读入给定缓冲区的子序列中。
abstract  long FileChannel.read(ByteBuffer[] dsts, int offset, int length)
          将字节序列从此通道读入给定缓冲区的子序列中。
abstract  long SocketChannel.read(ByteBuffer[] dsts, int offset, int length)
           
abstract  long DatagramChannel.read(ByteBuffer[] dsts, int offset, int length)
          从此通道读取数据报。
abstract  int FileChannel.read(ByteBuffer dst, long position)
          从给定的文件位置开始,从此通道读取字节序列,并写入给定的缓冲区。
abstract  SocketAddress DatagramChannel.receive(ByteBuffer dst)
          通过此通道接收数据报。
abstract  int DatagramChannel.send(ByteBuffer src, SocketAddress target)
          通过此通道发送数据报。
 int WritableByteChannel.write(ByteBuffer src)
          将字节序列从给定的缓冲区中写入此通道。
abstract  int FileChannel.write(ByteBuffer src)
          将字节序列从给定的缓冲区写入此通道。
abstract  int SocketChannel.write(ByteBuffer src)
           
abstract  int DatagramChannel.write(ByteBuffer src)
          将数据报写入此通道。
 long GatheringByteChannel.write(ByteBuffer[] srcs)
          将字节序列从给定的缓冲区写入此通道。
 long FileChannel.write(ByteBuffer[] srcs)
          将字节序列从给定的缓冲区写入此通道。
 long SocketChannel.write(ByteBuffer[] srcs)
           
 long DatagramChannel.write(ByteBuffer[] srcs)
          将数据报写入此通道。
 long GatheringByteChannel.write(ByteBuffer[] srcs, int offset, int length)
          将字节序列从给定缓冲区的子序列写入此通道。
abstract  long FileChannel.write(ByteBuffer[] srcs, int offset, int length)
          将字节序列从给定缓冲区的子序列写入此通道。
abstract  long SocketChannel.write(ByteBuffer[] srcs, int offset, int length)
           
abstract  long DatagramChannel.write(ByteBuffer[] srcs, int offset, int length)
          将数据报写入此通道。
abstract  int FileChannel.write(ByteBuffer src, long position)
          从给定的文件位置开始,将字节序列从给定缓冲区写入此通道。
 

java.nio.charsetByteBuffer 的使用
 

返回 ByteBufferjava.nio.charset 中的方法
 ByteBuffer Charset.encode(CharBuffer cb)
          将此 charset 中的 Unicode 字符编码成字节的便捷方法。
 ByteBuffer CharsetEncoder.encode(CharBuffer in)
          把单个输入字符缓冲区的剩余内容编码到新分配的字节缓冲区的便捷方法。
 ByteBuffer Charset.encode(String str)
          将此 charset 中的字符串编码成字节的便捷方法。
 

参数类型为 ByteBufferjava.nio.charset 中的方法
 CharBuffer Charset.decode(ByteBuffer bb)
          将此 charset 中的字节解码成 Unicode 字符的便捷方法。
 CharBuffer CharsetDecoder.decode(ByteBuffer in)
          把单个输入字节缓冲区的剩余内容解码到新分配的字符缓冲区的便捷方法。
 CoderResult CharsetDecoder.decode(ByteBuffer in, CharBuffer out, boolean endOfInput)
          从给定的输入缓冲区中解码尽可能多的字节,把结果写入给定的输出缓冲区。
protected abstract  CoderResult CharsetDecoder.decodeLoop(ByteBuffer in, CharBuffer out)
          将一个或多个字节解码为一个或多个字符。
 CoderResult CharsetEncoder.encode(CharBuffer in, ByteBuffer out, boolean endOfInput)
          从给定输入缓冲区中编码尽可能多的字符,把结果写入给定的输出缓冲区。
protected abstract  CoderResult CharsetEncoder.encodeLoop(CharBuffer in, ByteBuffer out)
          将一个或多个字符编码为一个或多个字节。
 CoderResult CharsetEncoder.flush(ByteBuffer out)
          刷新此编码器。
protected  CoderResult CharsetEncoder.implFlush(ByteBuffer out)
          刷新此编码器。
 

java.securityByteBuffer 的使用
 

参数类型为 ByteBufferjava.security 中的方法
protected  Class<?> SecureClassLoader.defineClass(String name, ByteBuffer b, CodeSource cs)
          使用可选的 CodeSource 将 ByteBuffer 转换为 Class 类的实例。
protected  void MessageDigestSpi.engineUpdate(ByteBuffer input)
          使用指定的 ByteBuffer 更新摘要。
protected  void SignatureSpi.engineUpdate(ByteBuffer input)
          使用指定的 ByteBuffer 更新要签名或验证的数据。
 void MessageDigest.update(ByteBuffer input)
          使用指定的 ByteBuffer 更新摘要。
 void Signature.update(ByteBuffer data)
          使用指定的 ByteBuffer 更新要签名或验证的数据。
 

javax.cryptoByteBuffer 的使用
 

参数类型为 ByteBufferjavax.crypto 中的方法
 int Cipher.doFinal(ByteBuffer input, ByteBuffer output)
          按单部分操作加密或解密数据,或者结束一个多部分操作。
protected  int CipherSpi.engineDoFinal(ByteBuffer input, ByteBuffer output)
          按单部分操作加密或解密数据,或者结束一个多部分操作。
protected  void MacSpi.engineUpdate(ByteBuffer input)
          从 input.position() 开始处,处理 ByteBuffer input 中的 input.remaining() 字节。
protected  int CipherSpi.engineUpdate(ByteBuffer input, ByteBuffer output)
          继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。
 void Mac.update(ByteBuffer input)
          从 input.position() 开始处,处理 ByteBuffer input 中的 input.remaining() 字节。
 int Cipher.update(ByteBuffer input, ByteBuffer output)
          继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。
 

javax.net.sslByteBuffer 的使用
 

参数类型为 ByteBufferjavax.net.ssl 中的方法
 SSLEngineResult SSLEngine.unwrap(ByteBuffer src, ByteBuffer dst)
          尝试把 SSL/TLS 网络数据解码到纯文本应用程序数据缓冲区中。
 SSLEngineResult SSLEngine.unwrap(ByteBuffer src, ByteBuffer[] dsts)
          尝试把 SSL/TLS 网络数据解码到纯文本应用程序数据缓冲区序列中。
 SSLEngineResult SSLEngine.unwrap(ByteBuffer src, ByteBuffer[] dsts)
          尝试把 SSL/TLS 网络数据解码到纯文本应用程序数据缓冲区序列中。
abstract  SSLEngineResult SSLEngine.unwrap(ByteBuffer src, ByteBuffer[] dsts, int offset, int length)
          尝试把 SSL/TLS 网络数据解码到纯文本应用程序数据缓冲区子序列中。
abstract  SSLEngineResult SSLEngine.unwrap(ByteBuffer src, ByteBuffer[] dsts, int offset, int length)
          尝试把 SSL/TLS 网络数据解码到纯文本应用程序数据缓冲区子序列中。
 SSLEngineResult SSLEngine.wrap(ByteBuffer[] srcs, ByteBuffer dst)
          尝试把数据缓冲区序列中的纯文本字节编码成 SSL/TLS 网络数据。
 SSLEngineResult SSLEngine.wrap(ByteBuffer[] srcs, ByteBuffer dst)
          尝试把数据缓冲区序列中的纯文本字节编码成 SSL/TLS 网络数据。
abstract  SSLEngineResult SSLEngine.wrap(ByteBuffer[] srcs, int offset, int length, ByteBuffer dst)
          尝试把数据缓冲区字序列中的纯文本字节编码成 SSL/TLS 网络数据。
abstract  SSLEngineResult SSLEngine.wrap(ByteBuffer[] srcs, int offset, int length, ByteBuffer dst)
          尝试把数据缓冲区字序列中的纯文本字节编码成 SSL/TLS 网络数据。
 SSLEngineResult SSLEngine.wrap(ByteBuffer src, ByteBuffer dst)
          试图把缓冲区的纯文本应用程序数据编码成 SSL/TLS 网络数据。
 


JavaTM 2 Platform
Standard Ed. 5.0

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

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