zoukankan      html  css  js  c++  java
  • js 二进制操作

    //二进制保存
    var
    content = "file content!"; var data = new Blob([content],{type:"text/plain;charset=UTF-8"}); var downloadUrl = window.URL.createObjectURL(data); var anchor = document.createElement("a"); anchor.href = downloadUrl; anchor.download = "文件名.txt"; anchor.click(); window.URL.revokeObjectURL(data); var binaryData = [0,0,1,1,1,0,0,0,1,1]; //普通数组 //要保存的数据是10个二进制位,但是一个字节是8位,so,需要16位,2个字节 var binLen = binaryData.length; var byteLen = Math.ceil(binLen/8); var buffer = new ArrayBuffer(byteLen ); // 开辟两个字节的缓冲区 var byteData = new Uint8Array(buffer); for(var i=0; i<byteLen ; i++) { //开始转化为8进制 byteData[i] = 0; for(var j=i*8,k=7; k>=0&&j<binLen; j++,k--) { byteData[i] |= binaryData[j] << k; //用按位或运算,将8个二进制一组地组合到byteData中 } } var data = new Blob([buffer],{type:"application/octet-stream"}); var downloadUrl = window.URL.createObjectURL(data); var anchor = document.createElement("a"); anchor.href = downloadUrl; anchor.download = "二进制测试.bin"; anchor.click(); window.URL.revokeObjectURL(data); var data = new Blob([pdfAsArray],{type:"application/octet-stream"}); var downloadUrl = window.URL.createObjectURL(data); var anchor = document.createElement("a"); anchor.href = downloadUrl; anchor.download = "a.pdf"; anchor.click(); window.URL.revokeObjectURL(data);
    //将流生成文件
    
    function dataURLtoBlob(data) {//data是文件流
    var bstr = $.base64.atob(data));//解码
    var n = bstr.length;
    var u8arr = new Uint8Array(n);
    while(n--){
       u8arr[n] = bstr.charCodeAt(n);//转二进制
    }
    return new Blob([u8arr], {type:'application/pdf'});//用blob生成pdf文件,返回PDF文件
    }
    function downFile(blob, fileName) {//blob就是一中返回的文件,fileName是下载文件名
       if (window.navigator.msSaveOrOpenBlob) {//msSaveOrOpenBlob方法返回bool值
           navigator.msSaveBlob(blob, fileName);//本地保存
       } else {
           var link = document.createElement('a');//a标签下载
           link.href = window.URL.createObjectURL(blob);
           link.download = fileName;
           link.click();
           window.URL.revokeObjectURL(link.href);
       }
    }
  • 相关阅读:
    java enum类
    mvn filter autoconfig 产生自动配置
    Spring与Quartz的整合实现定时任务调度 以及crontab的用法
    网络广告术语CPC、CPM和CTR的含义和关系
    spring mvc3的注解@ResponseBody 自动返回jason
    Google Guava14.0 瓜娃学习笔记
    java中的各个数据结构区别
    org.apache.http.client.HttpClient; HttpClient 4.3超时设置
    maven test 运行 指定类或方法 打包 mvn clean assembly:assembly
    为什么要做url encode
  • 原文地址:https://www.cnblogs.com/yzpopulation/p/9396259.html
Copyright © 2011-2022 走看看