【脚本语言】RINGO JS-模块 binary

模块 binary

在处理网络套接字或二进制文件时,需要读取和写入字节流。 JavaScript 本身并不提供二进制数据的本地表示,所以这个模块提供了两个类来解决这个缺点。 实施遵循 CommonJS Binary/B 提案。

ByteArray 实现了可修改和可调整大小的字节缓冲区。

ByteString 实现一个不可变的字节序列。

两个类共享一个通用的基类 Binary。 基类不能被实例化。 它仅用于确认 Binary 的 ByteString 和 ByteArray 实例。

当传递给需要 byte[] 的 Java 方法时,这些类的实例会自动解包。

Example

// raw network streams only accept Binary as input
var stream = socket.getStream();
stream.write(new ByteArray([0xFA, 0xF0, 0x10, 0x58, 0xFF]));

// network protocols like HTTP/1.1 require ASCII
const CRLF = new ByteString("\r\n", "ASCII");
const EMPTY_LINE = new ByteString("\r\n\r\n", "ASCII");

// saves a java.security.Key to a file;
// the method getEncoded() returns a Java byte[]
fs.write("id_dsa.pub", ByteArray.wrap(publicKey.getEncoded()));

// Generates a salt for hashing
var random = java.security.SecureRandom.getInstance("SHA1PRNG");
var salt = new ByteArray(8);
random.nextBytes(salt); // fills up salt with random bytes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值