java doublebuffer_Java ByteBuffer asDoubleBuffer()用法及代码示例

java.nio.ByteBuffer类的asDoubleBuffer()方法用于创建此字节缓冲区作为双缓冲区的视图。

新缓冲区的内容将从该缓冲区的当前位置开始。对该缓冲区内容所做的更改将在新缓冲区中可见,反之亦然;这两个缓冲区的位置,限制和标记值将是独立的。

新缓冲区的位置将为零,其容量和限制将是该缓冲区中剩余的字节数除以8,并且其标记将不确定。当且仅当该缓冲区是直接缓冲区时,新缓冲区才是直接缓冲区;当且仅当该缓冲区是只读缓冲区时,新缓冲区才是只读缓冲区。

用法:

public abstract DoubleBuffer asDoubleBuffer()

返回值:此方法返回一个新的双缓冲区。

下面是说明asDoubleBuffer()方法的示例:

范例1:

// Java program to demonstrate

// asDoubleBuffer() method

// for ByteBuffer

import java.nio.*;

import java.util.*;

public class GFG {

public static void main(String[] args)

{

// Declaring the capacity  of the ByteBuffer

int capacity = 50;

// Creating the ByteBuffer

try {

// creating object of  ByteBuffer

// and allocating size capacity

ByteBuffer bb = ByteBuffer.allocate(capacity);

// changeing  bytebuffer into

// DoubleBuffer

DoubleBuffer cb = bb.asDoubleBuffer();

// putting the value in DoubleBuffer

cb.put(5001.99);

cb.put(5002.99);

cb.put(5003.99);

cb.rewind();

// Declaring variable c

double c;

// print the ByteBuffer

System.out.print("DoubleBuffer : ");

while ((c = cb.get()) != 0)

System.out.print(c + " ");

}

catch (IllegalArgumentException e) {

System.out.println("Exception thrown : " + e);

}

catch (ReadOnlyBufferException e) {

System.out.println("Exception thrown : " + e);

}

}

}

输出:

DoubleBuffer : 5001.99 5002.99 5003.99

范例2:

// Java program to demonstrate

// asDoubleBuffer() method

// for ByteBuffer

import java.nio.*;

import java.util.*;

public class GFG {

public static void main(String[] args)

{

// Declaring the capacity  of the ByteBuffer

int capacity = 50;

// Creating the ByteBuffer

try {

// creating object of  ByteBuffer

// and allocating size capacity

ByteBuffer bb = ByteBuffer.allocate(capacity);

// changeing  bytebuffer into

// DoubleBuffer

DoubleBuffer cb = bb.asDoubleBuffer();

// putting the value in DoubleBuffer

cb.put(5001.99);

cb.put(5002.99);

cb.put(5003.99);

cb.rewind();

// Declaring variable c

double c;

// print the ByteBuffer

System.out.print("DoubleBuffer : ");

while ((c = cb.get()) != 0)

System.out.print(c + " ");

// Creating a read-only copy of ByteBuffer

// using asReadOnlyBuffer() method

ByteBuffer bb1 = bb.asReadOnlyBuffer();

// changeing read-only bytebuffer into

// read-only DoubleBuffer

DoubleBuffer cb1 = bb1.asDoubleBuffer();

// putting the value in read-only double buffer

System.out.println("\n\nTrying to put the value "

+ "in read only double buffer");

cb1.put(5001.99);

cb1.put(5002.99);

cb1.put(5003.99);

cb1.rewind();

}

catch (IllegalArgumentException e) {

System.out.println("Exception thrown : " + e);

}

catch (ReadOnlyBufferException e) {

System.out.println("Exception thrown : " + e);

}

}

}

输出:

DoubleBuffer : 5001.99 5002.99 5003.99

Trying to put the value in read only double buffer

Exception thrown : java.nio.ReadOnlyBufferException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值