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());
*/
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());
*/