笔记3:FileWebRequest 与 FileWebResponse

前端之家收集整理的这篇文章主要介绍了笔记3:FileWebRequest 与 FileWebResponse前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


FileWebRequest 及 FileWebResponse这两个类衍生自 WebRequest 及 WebResponse,用以存取本机文件数据。

把本机路径“看作”URL,来初始化建立对象。

一、建立类实体

同样没有构造函数,必须引用类WebRequest的方法成员Create(),建立所需的FileWebRequest类实体,WebRequest根据传入的URI字符串,返回一个FileWebRequest对象。下面strAddress为本机所要存取的某个文件完整路径名称

      Dim myFileWebRequestAs FileWebRequest = CType(WebRequest.Create(strAddress),FileWebRequest)

FileWebRequest继承WebRequest类的方法成员,还有自身方法成员。

FileWebResponse 对象,同样必须由 FileWebRequest 的 GetResponse()方法,返回所取得的类对象。

二、文件存取

用特定文件URI初始化的HleWebRequest实体,取得返回的FileWebResponse对象,就可以进行文件存取操作。

读取文件

与下载网页的过程非常类似,把本机上的文件当作“服务器”。

写入文件

利用FileWebRequest对象发出请求,由其传回连接目标文件所需的数据流;通过这个数据流,将数据被写入新建立的数据流,最后保存到指定的目标文件。返回数据流的方法则是通过引用GetRequestStream()方法来完成:

           Public FunctionGetRequestStream() As Stream

结果返回文件数据流对象,它可直接通过文件I/O的模式,引用Write()方法,将字节数据写入目标文件

三、读写文件举例

FileWebRequest 及 FileWebResponse 类的使用,与WebRequest 与 WebResponse 相似。

下面对本机D盘文件进行读取与写入操作。


Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1
    Private Sub btnRead_Click(sender As Object,e As EventArgs) Handles btnRead.Click
        Dim fq As FileWebRequest
        Dim fp As FileWebResponse
        Dim st As Stream
        Dim sr As StreamReader

        Try
            fq = CType(WebRequest.Create(txtAddress.Text),FileWebRequest) '创建filewebrequest
            fp = fq.GetResponse
            st = fp.GetResponseStream '响应流,即读取流

            sr = New StreamReader(st,Encoding.Default)
            txtContent.Text = sr.ReadToEnd

            st.Close()
            sr.Close()
        Catch ex As Exception
            txtContent.Text = ex.Message
        End Try
    End Sub

    Private Sub btnWrite_Click(sender As Object,e As EventArgs) Handles btnWrite.Click
        Dim fq As FileWebRequest
        Dim st As Stream
        Dim a() As Byte
        Dim lngCount As Int64

        lngCount = Encoding.Default.GetBytes(txtContent.Text).Count
        ReDim a(lngCount)
        a = Encoding.Default.GetBytes(txtContent.Text)
        Try
            fq = CType(WebRequest.Create(txtAddress.Text),FileWebRequest)
            fq.Method = "PUT"        '设置写入方式,默认(不设置)时是Get即读取

            st = fq.GetRequestStream '请求流(非响应流),故方向是向文件写入
            st.Write(a,a.Length)

            st.Close()
            MsgBox("完成!")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class






总结:1、filewebrequest对本机文件的存取,感觉用处不大,何必绕个圈子做这事呢?

2、流的方向,请求流与响应流

猜你在找的VB相关文章