官术网_书友最值得收藏!

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所示。

圖2-23 保存到文件的范例

可以看到,屏幕上輸出的是“?徨”,這是因為“編”字的編碼是BE8E,在Big5中沒有對應字符,“碼”字的編碼是B461,在Big5中對應的是“徨”字。

以GB2312編碼打開文件的顯示結果如圖2-24所示。實際文件中是正確的“編碼”二字,說明Charset并不會影響保存到文件中的數據,保存的過程中沒有進行轉換。但是文本方式時,Charset可能會影響前綴的寫入,這一點前文已經提過了。

圖2-24 以GB2312打開文件的顯示結果

主站蜘蛛池模板: 沾化县| 东至县| 上蔡县| 来凤县| 宜阳县| 育儿| 高邑县| 武功县| 临武县| 威远县| 浠水县| 铜陵市| 晋中市| 镇原县| 唐河县| 安康市| 临湘市| 思茅市| 永嘉县| 萨嘎县| 德清县| 乐山市| 望都县| 郓城县| 怀宁县| 荣成市| 遵义县| 沙河市| 高雄县| 西乌珠穆沁旗| 台中县| 都安| 茌平县| 定南县| 华池县| 梓潼县| 惠来县| 临沭县| 武平县| 阿拉善左旗| 兴业县|