前端将二进制数据流转为文件_JavaScript前端开发之实现二进制读写操作

本文详细介绍了在JavaScript前端环境下如何实现二进制数据的读写操作,包括将字符串转换为二进制流、读取UTF-8编码的字符串等。通过TinyStream帮助类,可以方便地在浏览器中进行二进制数据处理。
摘要由CSDN通过智能技术生成

关于javascript前端开发之实现二进制读写操作的相关介绍,请看以下内容详解,本文介绍的非常详细,具有参考价值。

由于种种原因,在浏览器中无法像nodejs那样操作二进制。

最近写了一个在浏览器端操作读写二进制的帮助类

!function (entrance) {

"use strict";

if ("object" === typeof exports && "undefined" !== typeof module) {

module.exports = entrance();

} else if ("function" === typeof define && define.amd) {

define([], entrance());

} else {

var f;

if ("undefined" !== typeof window) {

f = window;

} else {

throw new Error('wrong execution environment');

}

f.TinyStream = entrance();

}

}(function () {

var binaryPot = {

/**

* 初始化字节流,把-128至128的区间改为0-256的区间.便于计算

* @param {Array} array 字节流数组

* @return {Array} 转化好的字节流数组

*/

init: function (array) {

for (var i = 0; i < array.length; i++) {

array[i] *= 1;

if (array[i] < 0) {

array[i] += 256

}

if(array[i]>255){

throw new Error('不合法字节流')

}

}

return array;

},

/**

* 把一段字符串按照utf8编码写到缓冲区中

* @param {String} str 将要写入缓冲区的字符串

* @param {Boolean} isGetBytes 是否只得到内容字节(不包括最开始的两位占位字节)

* @returns {Array} 字节流

*/

writeUTF: function (str, isGetBytes) {

var back = [],

byteSize = 0;

for (var i = 0; i < str.length; i++) {

var code = str.charCodeAt(i);

if (code >= 0 && code <= 127) {

byteSize += 1;

back.push(code);

} else if (code >= 128 && code <= 2047) {

byteSize += 2;

back.push((192 | (31 & (code >> 6))));

back.push((128 | (63 & code)))

} else if (code >= 2048 && code <= 65535) {

byteSize += 3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值