如何對VB.NET流進行正確操作
大家可能都知道Visual Basic 語言,因為它的應用范圍非常廣泛。那么VB.NET語言又是什么樣的一種語言呢?其實它是Visual Basic 語言的演化,并且VB.NET的預言特點比較突出,極大的吸引了開發人員的眼球。#t#
“流”是字節序列的抽象概念,或者說是計算機在處理文件或數據時產生的二進制序列。下面我們將通過這個簡單的例子來學習使用VB.NET流類實現對文件的操作。
在學習這個簡單的例子前我們有必要對VB.NET流進行一個簡單的介紹。
大家都知道“流”的英文是“Stream”,所以在VB.NET中也就是直接用的Stream來表示流類。Stream是所有流的抽象基類。一般來說是不會直接使用Stream 類的,因為它提供的功能并不強大。通常的方法是使用它的派生類(有些書稱為子代類),這些派生類中使用的最多的是文件流類,對于文件流來說它大致包含了文件的建立,文件夾的建立,文件的轉移,文件的讀寫這4中功能,在下面的內容中我們將學會如何實現這4中功能。
在文件流類中最重要的是Read 和 Write 方法,這兩個方法是完成文件讀寫所必須的。在完成對文件的讀寫訪問后一定要記得調用 Close將流關閉,否則將會出現當從其他程序訪問此文件時系統將提示文件無法訪問之類的錯誤信息。
通過上面的簡單介紹,我們已經大致對流有了一個簡單的了解。下面我們就來學習這4個編程例子。
這個例子分別是:通過VB.NET流實現本地計算機中的文件轉移,通過流實現計算機中文件的網絡轉移或稱為網絡文件傳輸,讀寫文本文件,讀寫二進制文件。
示例一 本地文件轉移
本示例將任意文件進行流化處理后,在指定的位置產生一個相同文件的副本,即實現文件的拷貝功能。
- Private Sub Button1_Click(ByVal
sender As System.Object, ByVal
e As System.EventArgs)- Handles Button1.Click
- FileStreamL()‘實現文件的拷貝功能
- End Sub
- Sub FileStreamL()
- Dim fileinf As New System.IO.
FileInfo("c:\dd.doc")- ‘實例化FileInfo類
- Dim byt(fileinf.Length() - 1)
As Byte- ‘獲得原始文件的大小
- Dim files As New System.IO.
FileStream("c:\dd.doc", IO.
FileMode.Open,- IO.FileAccess.ReadWrite)
- ‘實例化FileStream類
- Dim filesw As New System.IO.
FileStream("c:\kp.doc",IO.
FileMode.OpenOrCreate)- ‘實例化FileStream類,
并建立一個空的新文件- files.Read(byt, 0, byt.Length)
- ‘讀原文件內容到byt數組中
- filesw.Write(byt, 0, byt.Length)
- ‘將byt數組的內容寫到新文件中
- files.Close()‘關閉流
- filesw.Close()‘關閉流
- End Sub
程序說明:在這段代碼中我們創建了一個FileStreamL過程,在這個過程中首先聲明FileInfo類利用此類獲的原始文件的大小然后在通過聲明兩個FileStream類,***個是用來對原始文件進行流讀操作,即將其數據讀入內存,并保存在Byt數組中。第二個FileStream類是用來將保存在Byt數組中的數據寫入到指定的新文件中,本代碼的原始文件是C盤中的dd.doc文件,新文件是C盤中的“kp.doc”文件。
本代碼括號中的參數在MSDN中都有詳細的解釋,這里就不在討論了。
總結:本文通過以上例子講解了VB.NET流對象的編程基礎。其實對于流對象來說,它的使用都是和文件相結合的。比如本文的例子中每一個流對象的建立都是和文件相關的,如果在你編寫有關流對象的代碼時發現語句中沒有與文件相關的語句,那嗎這些語句多數情況下是錯誤或不完整的。