【脚本语言】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

猜你喜欢

转载自blog.csdn.net/lemon5814/article/details/83544122
今日推荐