【指令碼語言】RINGO JS-模組 binary
阿新 • • 發佈:2018-11-07
模組 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