JScript讀寫二進位檔案

來源:互聯網
上載者:User

asp環境中,vbscript先天性的在讀寫位元據方面比JScript方便,JScript本身並無針對位元據(或者說位元組資料)的資料類型、對象、方法,所以有些高手愛用JScript寫ASP,但是如果涉及位元組資料處理基本上都要頭痛。只能用ADODB.Stream在文字模式下進行讀寫了,需要將字元集設定為單一位元組字元集(如iso-8859-1)。

var bin = new Array(256);
for(var i=0;i<256;i++){
    bin[i]=String.fromCharCode(i);
}

function TestWrite(){
    var Stream = new ActiveXObject("ADODB.Stream");
    var adTypeBinary=1,adTypeText=2;
    Stream.Type = adTypeText;
    Stream.CharSet = "iso-8859-1";
    Stream.Open();
    //Stream.WriteText("\x00\x01\x02\xff\xff");
    for(var i=0;i<256;i++){
        Stream.WriteText(String.fromCharCode(i));
        //Stream.WriteText(bin[i]);
    }
    Stream.SaveToFile("c:\\windows\\temp\\test.bin", 2);
    Stream.Close();
    Stream = null;
}
function BinaryFile(filepath){
    var adTypeBinary=1,adTypeText=2;
    var adSaveCreateNotExist=1,adSaveCreateOverWrite=2;
    var adReadAll=-1,adReadLine=-2;
    this.path=filepath;
    this.WriteAll = function(content){
        var Stream = new ActiveXObject("ADODB.Stream");
        Stream.Type = adTypeText;
        Stream.CharSet = "iso-8859-1";
        Stream.Open();
        Stream.WriteText(content);
        Stream.SaveToFile(this.path, adSaveCreateOverWrite);
        Stream.Close();
        Stream = null;
    }
    this.ReadAll = function(){
        var Stream = new ActiveXObject("ADODB.Stream");
        Stream.Type = adTypeText;
        Stream.CharSet = "iso-8859-1";
        Stream.Open();
        Stream.LoadFromFile(this.path);
        var content = Stream.ReadText(adReadAll);
        Stream.Close();
        Stream = null;
        return content;
    }
}
// Example Code
/*
var crFolder = 'C:/Temp/cr'
var bf1=new BinaryFile(crFolder+"/PCDV0026.JPG");
var bf2=new BinaryFile(crFolder+"/PCDV0026_.JPG");
bf2.WriteAll(bf1.ReadAll());
*/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.