package com.zhengtian.test;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
/**
* @author zhengtian
*
* @date 2011-6-17 下午02:39:24
*/
@SuppressWarnings("all")
public class test {
public static void main(String[] args) {
// 创建一个字节缓冲区
ByteBuffer bb = ByteBuffer.allocate(10);
// 创建该字节缓冲区的整型视图缓冲区,视图缓冲区与字节缓冲区共享缓冲区元素,但独立维护自己缓冲区的postion、limit、容量等
IntBuffer ib = bb.asIntBuffer();
/**
* 将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中, 实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系, 例如,‘1’就是指的数值1,而不是其ASCII码,对于这种转换, 我们可以使用Character的
* getNumericValue(char ch)方法。
*
* 因此將字符'1'、'2'、'3'、'4'存入字节缓冲区时,实际上是存储的二进制形式的49、50、51、52
*/
bb.put((byte) '1');
bb.put((byte) '2');
bb.put((byte) '3');
bb.put((byte) '4');
bb.flip();
System.out.println(bb.get());
System.out.println(bb.get());
System.out.println(bb.get());
/**
* 整型缓冲区在读取数据时,是一次从字节缓冲区中读取4个字节,然后将先读取的字节放在高位,后读取的字节放在低位,最后组合成一个int
*/
System.out.println(ib.get());
}
}
分享到:
相关推荐
- `read(ByteBuffer dst)`:从通道读取数据到缓冲区。 - `write(ByteBuffer src)`:从缓冲区写入数据到通道。 - `transferTo(WritableByteChannel target, long position, long count)`:将文件从当前位置复制到...
- **`ulong byteLength`**:只读属性,返回缓冲区的长度(以字节为单位)。 **用途**:创建一个 ArrayBuffer 对象,并可通过创建一个或多个视图来修改数据。 - **Views** 以下是一些常见的 Typed Array 类型...
`read()`方法可以读取到缓冲区的数据,返回值表示实际读取的字节数。 4. 当需要停止录音时,调用`stop()`方法。 5. 最后,释放资源,调用`release()`方法。 ### 3. 实时绘图 为了可视化音频数据,我们可以使用...
6. **分片与复制**:ByteBuffer可以创建视图(slice),生成一个新的缓冲区,它共享原始缓冲区的一部分数据。此外,还有复制缓冲区的方法,生成一个完全独立的新缓冲区。 7. **协议兼容性**:ByteBuffer的设计目的...
数据在缓冲区中的位置会根据其类型进行字节对齐,这影响了数据的读取和写入。 5. **内存共享**:ArrayBuffer对象可以被多个视图同时引用,这样可以在不复制数据的情况下实现数据的共享,提高性能。 6. **读写操作*...
首先,ArrayBuffer是一种在JavaScript中表示固定长度的原始二进制数据缓冲区的对象。它并不提供直接的数据访问,而是通过类型数组对象(如Uint8Array、Int32Array等)或DataView来间接操作。ArrayBuffer就像是一个...
DataView可以处理各种数据类型,包括字节、短整型、整型、浮点型等,并且支持大端序和小端序。 3. **创建ArrayBuffer**:可以通过`new ArrayBuffer(size)`来创建一个ArrayBuffer,其中size参数指定缓冲区的字节长度...
9. ASP(Active Server Pages)中,Response对象的Write、BinaryWrite方法用于输出内容,而Flush方法用于刷新缓冲区。 10. 视图在数据库中是虚拟表,可以用于查询和更新,但视图本身不是查询结果。 11. 在Excel...
- `void flush()`:此方法不属于`InputStream`类,而是`OutputStream`和`Writer`类的方法,用于清空缓冲区并强制将缓冲区中的所有字节写入输出流。 #### 2. 文本框控件的滚动条设置 - **知识点**: - `ScrollBar...
ArrayBuffer 是一种原始数据缓冲区,它不直接暴露访问其内容的方法,而是通过视图(View)对象来访问,如Int8Array、Uint16Array、Float32Array等。这些视图类型提供了不同数据类型的解析和操作。ArrayBuffer 的主要...
1. **缓冲区技术**:缓冲区技术是在程序中使用缓存来提高读写效率的一种技术。 2. **Buffered流**:BufferedInputStream和BufferedOutputStream是Java中实现缓冲区技术的两种流。 **解释**:使用带缓冲区的流可以...
- **组合输入输出流**:为了提高数据传输的效率,可以使用缓冲区来组合多个输入输出流。 - **成帧与解析**:为了确保数据的完整性和顺序性,需要对数据进行成帧,并在接收端进行解析。 - **Java特定编码**:Java提供...
8. 使用了缓冲区技术的流是BufferedReader,它能提高读取效率。 9. 计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 10. 编译程序的主要目的是将源代码编译成目标代码,以便计算机能够...
1. **ArrayBuffer**: 这是一个无结构的、只读的二进制数据缓冲区。它不包含任何数据格式,只是一个简单的字节数组,可以被不同的视图(View)解析。 2. **Typed Arrays**: 包括Int8Array、Uint8Array、Int16Array、...
- **控制默认行为**:可以通过设置套接字选项来调整套接字的行为,例如启用Keep-Alive功能、调整缓冲区大小等。 - **关闭连接**:在完成通信后,应适当地关闭连接以释放资源。 #### 第5章 NIO (New I/O) - **为...
例如,可以使用`CString::GetBuffer()`获取内部缓冲区的指针,或使用`strcpy_s`和`strncpy_s`将char*转换为CString。 2. char 和 char*类型应用:这两个是C语言中的基础数据类型,用于处理文本。了解它们的区别和...
在Java中,`BufferedOutputStream`使用了缓冲区技术来提高数据写入的效率。 ### 24. IP地址的表示 IP地址实际上使用4个字节来存储和标识,而不是3个字节。 ### 25. Visual FoxPro中的记录查找 在Visual FoxPro中...
- **缓冲区和转换流**:BufferedReader和BufferedWriter提供缓冲功能,InputStreamReader和OutputStreamWriter用于字符编码转换。 4. **集合框架** - **容器**:ArrayList、LinkedList、HashSet、HashMap等是常用...
理解字节流和字符流的区别,以及缓冲区和转换流的作用,对处理数据传输至关重要。 8. **多线程**:Java内置了对多线程的支持,通过Thread类和Runnable接口可以创建并运行并发任务。理解线程同步(如synchronized...