- 深入解析ASP核心技术
- 王洪影
- 353字
- 2023-01-30 16:29:04
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时,被自动加了前缀。处理方式为二进制时,则不会自动加前缀。所以,推荐以二进制方式载入文件。