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