ArrayBuffer 表示二进制数据的原始缓冲区,该缓冲区用于存储各种类型化数组的数据。是最基础的原始数据容器,无法直接读取或写入, 需要通过其他方式来读写。如:
1 2 3 4 5 6 7
| Int8Array 8位有符号整数 Uint8Array 8位无符号整数 Uint8ClampedArray 8位无符号整数,像素操作
Int16Array 16位有符号整数 Uint16Array 16位无符号整数 ...
|
ArrayBuffer 的构造函数:
方法:
接下来通过一个例子来直观地了解它的用法。比如我们上传一个文件,读取文件内容并将其转换为字符串:
1 2 3 4 5 6 7 8 9 10 11
| function FileToString(file) { var r = new FileReader(); var buffer = r.readAsArrayBuffer(file); var uint8arr = new Uint8Array(buffer); var str = ''; for(var i=0; i<uint8arr.length; i++) { str += String.fromCharCode(uint8arr[i]); } return str; }
|
我们了解了 ArrayBuffer 转字符串,接下来看看如何将字符串转换为 ArrayBuffer:
1 2 3 4 5 6 7 8 9
| function StringToBuffer(str) { var buffer = new ArrayBuffer(str.length); var uint8arr = new Uint8Array(buffer); for(var i=0; i<str.length; i++) { uint8arr[i] = str.charCodeAt(i); } return buffer; }
|