![深入解析ASP核心技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/373/837373/b_837373.jpg)
上QQ阅读APP看书,第一时间看更新
2.3.6 保存到文件
我们可以使用SaveToFile方法将流中的数据保存到文件,格式如下:
objStream.SaveToFile 文件路径,参数
参数的可选值是1和2,前者是默认的,指文件不存在则自动创建,后者指文件已存在则覆盖它。如果参数使用1,而文件已经存在的话,则运行会报错。
不管处理方式是文本形式还是二进制形式,SaveToFile方法都会忠实地将数据以二进制的形式写入文件,不会进行任何转换,数据流是什么样子,文件中就是什么样子。调用此方法后,指针会自动指向位置0。
下面看一下范例。
SaveToFile.asp
<%@codepage=936%> <% Response.Charset="BIG5" Dim stream Set stream = Server.CreateObject("ADODB.Stream") stream.Type = 2 '文本方式 stream.Charset = "GBK" stream.Open stream.WriteText "編碼"
'变更Charset,输出看一下 stream.Position=0 stream.Charset = "BIG5" response.codepage=950 response.write stream.ReadText & "<br>" '保存到文件 stream.SaveToFile Server.MapPath("SaveToFile_Result.txt"),2 response.write stream.Position stream.close Set stream = nothing %>
运行结果如图2-23所示。
![](https://epubservercos.yuewen.com/54F32D/5128954204275601/epubprivate/OEBPS/Images/figure_0071_0001.jpg?sign=1738884745-YxR85YzEZeGEQ94n5Y6mPCQGb2OwfMWv-0-69f601271d34f0ce3f44b7123913eaae)
图2-23 保存到文件的范例
可以看到,屏幕上输出的是“?徨”,这是因为“編”字的编码是BE8E,在Big5中没有对应字符,“碼”字的编码是B461,在Big5中对应的是“徨”字。
以GB2312编码打开文件的显示结果如图2-24所示。实际文件中是正确的“編碼”二字,说明Charset并不会影响保存到文件中的数据,保存的过程中没有进行转换。但是文本方式时,Charset可能会影响前缀的写入,这一点前文已经提过了。
![](https://epubservercos.yuewen.com/54F32D/5128954204275601/epubprivate/OEBPS/Images/figure_0071_0002.jpg?sign=1738884745-waIgQp7QSRlpClXSa2euGzCTyeDkI6BT-0-97760d02b2d178ef5bbbd9cca1adbe5b)
图2-24 以GB2312打开文件的显示结果