如何对VB.NET流进行正确操作
创始人
2024-06-21 08:31:34
0

大家可能都知道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流实现本地计算机中的文件转移,通过流实现计算机中文件的网络转移或称为网络文件传输,读写文本文件,读写二进制文件。

示例一 本地文件转移

本示例将任意文件进行流化处理后,在指定的位置产生一个相同文件的副本,即实现文件的拷贝功能。

 

  1. Private Sub Button1_Click(ByVal 
    sender As System.Object, ByVal 
    e As System.EventArgs)  
  2. Handles Button1.Click  
  3. FileStreamL()‘实现文件的拷贝功能  
  4. End Sub   
  5. Sub FileStreamL()  
  6. Dim fileinf As New System.IO.
    FileInfo("c:\dd.doc")  
  7. ‘实例化FileInfo类  
  8. Dim byt(fileinf.Length() - 1) 
    As Byte  
  9. ‘获得原始文件的大小  
  10. Dim files As New System.IO.
    FileStream("c:\dd.doc", IO.
    FileMode.Open,  
  11. IO.FileAccess.ReadWrite)  
  12. ‘实例化FileStream类  
  13. Dim filesw As New System.IO.
    FileStream("c:\kp.doc",IO.
    FileMode.OpenOrCreate)  
  14. ‘实例化FileStream类,
    并建立一个空的新文件  
  15. files.Read(byt, 0, byt.Length)  
  16. ‘读原文件内容到byt数组中  
  17. filesw.Write(byt, 0, byt.Length)  
  18. ‘将byt数组的内容写到新文件中  
  19. files.Close()‘关闭流  
  20. filesw.Close()‘关闭流  
  21. End Sub  

程序说明:在这段代码中我们创建了一个FileStreamL过程,在这个过程中首先声明FileInfo类利用此类获的原始文件的大小然后在通过声明两个FileStream类,***个是用来对原始文件进行流读操作,即将其数据读入内存,并保存在Byt数组中。第二个FileStream类是用来将保存在Byt数组中的数据写入到指定的新文件中,本代码的原始文件是C盘中的dd.doc文件,新文件是C盘中的“kp.doc”文件。

本代码括号中的参数在MSDN中都有详细的解释,这里就不在讨论了。

总结:本文通过以上例子讲解了VB.NET流对象的编程基础。其实对于流对象来说,它的使用都是和文件相结合的。比如本文的例子中每一个流对象的建立都是和文件相关的,如果在你编写有关流对象的代码时发现语句中没有与文件相关的语句,那吗这些语句多数情况下是错误或不完整的。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...