- 深入解析ASP核心技術
- 王洪影
- 353字
- 2019-01-03 18:16:00
2.3.4 從文件讀取數據
讀取文件,可以使用LoadFromFile方法,它只有一個參數,就是文件路徑。該方法會拋棄Stream對象中原有的數據,它們占據的空間也被收回,從文件讀入的數據有多大,Stream就有多大。執行該方法后,指針會自動指向位置0,即Position屬性為0。
不管Stream對象的數據類型是文本還是二進制,從文件讀入數據的過程中,都沒有進行編碼轉換,數據是原樣寫入Stream對象的。
下面看一下例子,例子中所用的LoadFromFile.txt中只有“編碼”兩個字,文件以GBK編碼保存。
LoadFromFileByText.asp
<%@codepage=936%> <! --#include File="getMemoryFormat.asp" --> <% Response.Charset="GBK" Dim stream Set stream = Server.CreateObject("ADODB.Stream") '建立Stream對象 stream.Type = 2 '文本方式 stream.Charset = "GBK" stream.Open '讀入文件內容 stream.LoadFromFile Server.MapPath("LoadFromFile.txt") '輸出所有內容(不必移動指針) response.write stream.ReadText '看看數據的二進制形式 stream.Position=0 '移動指針到位置0 stream.Type = 1 '二進制方式 response.write getMemoryFormat(stream.Read) stream.close Set stream = nothing %>
運行結果如圖2-19所示。

圖2-19 從文件讀取數據
可以看到,Stream對象中保存的正是“編碼”兩個字的GBK編碼。保持txt文件不變,修改Stream對象的Charset,可以總結出表2-11。
表2-11 不同Charset的結果

從表可以看出,Stream中的數據在幾種情況下都與txt文件內容一致,只是Charset為Unicode和UTF-8時,被自動加了前綴。處理方式為二進制時,則不會自動加前綴。所以,推薦以二進制方式載入文件。