- 深入解析ASP核心技術
- 王洪影
- 415字
- 2019-01-03 18:16:02
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打開文件的顯示結果