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

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時,被自動加了前綴。處理方式為二進制時,則不會自動加前綴。所以,推薦以二進制方式載入文件。

主站蜘蛛池模板: 重庆市| 毕节市| 兰考县| 竹溪县| 城市| 曲阜市| 玉溪市| 克山县| 盘锦市| 丰城市| 郑州市| 开江县| 兴海县| 彭阳县| 洮南市| 白山市| 临汾市| 丰镇市| 麻江县| 聂拉木县| 壶关县| 南昌县| 阳新县| 军事| 墨玉县| 威信县| 江门市| 屏南县| 扎囊县| 靖边县| 密山市| 施甸县| 射阳县| 东丽区| 北碚区| 贵南县| 婺源县| 玉溪市| 瑞昌市| 荥阳市| 彭州市|