ASP用ADODB.Stream代替FSO读写文本文件

在ASP中,我们常用Scripting.FileSystemObject组件来读写文本文件,但它有一个缺点是对编码支持不足,比如我们想读写一个utf-8文本文件,FSO就很难办到了,这时我们就需要使用Adodb.Stream组件来代替它:

<%
'读取文件
Function ReadFile(ByVal strFile, ByVal strEncode)
    Dim objStream
    On Error Resume Next
    Set objStream = Server.CreateObject("ADODB.Stream")
    If Err.Number=-2147221005 Then
        ReadFile = "ADODB.Stream对象创建失败!"
        Err.Clear
        Exit Function
    End If
    With objStream
        .Type = 2
        .Mode = 3
        .Open
        .LoadFromFile Server.MapPath(strFile)
        If Err.Number<>0 Then
            ReadFile = strFile & "打开失败!"
            Err.Clear
            Exit Function
        End If
        .Charset = strEncode
        .Position = 2
        ReadFile = .ReadText
        .Close
    End With
    Set objStream = Nothing
End Function

'写入文件
Sub WriteFile(ByVal strFile, ByVal strBody, ByVal strEncode)
    Dim objStream
    On Error Resume Next
    Set objStream = Server.CreateObject("ADODB.Stream")
    If Err.Number=-2147221005 Then
        Response.Write "ADODB.Stream对象创建失败!"
        Err.Clear
        Exit Sub
    End If
    With objStream
        .Type = 2
        .Open
        .Charset = strEncode
        .Position = objStream.Size
        .WriteText = strBody
        .SaveToFile Server.MapPath(strFile),2
        .Close
    End With
    Set objStream = Nothing
End Sub
%>

调用示例

<%
WriteFile "aaa.txt", "www.mzwu.com", "utf-8"
Response.Write ReadFile("aaa.txt", "utf-8")
%>


评论: 0 | 引用: 0 | 查看次数: 5083
发表评论
登录后再发表评论!