设为首页
给我留言
首页       关于蓬缘    克隆建站    模版建站    建站流程    建站疑虑    支付方式    网站推广    网站优化    建站学院    联系我们    
蓬缘网络技术工作室真心为您服务!霸州网站建设 + 霸州网页设计 + 霸州企业建站 + 霸州FLASH设计 + 霸州网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十四小时服务热线: 15932615201 13810319167。欢迎来电咨询……霸州网站建设工作室|霸州网站制作|霸州建站|霸州网站改版|霸州企业建站|霸州专业建站|蓬缘网络技术工作室 - 我要网站 - http://www.woyaowangzhan.com……霸州蓬缘网络技术工作室是专业的建站团队,提供专业的霸州建站服务:1、霸州专业网站建设(霸州网站设计)2、霸州网站推广(百度、Google、搜狐、阿里巴巴等)3、霸州网站优化(SEO、百度推广优化)4、霸州域名注册(.com/.cn/.net等)5、霸州虚拟主机(ASP、.net等)6、霸州政府建站7、霸州门户网站…… 现在时间是
建站学堂
 
VB.NET文件操作
[ 2008-9-27 6:03:00 ] 作者: 来源:

  核心提示:...

文件操作具体实例


在这一部分,你将找到更多常用的文件操作的代码实例。最常用、最基本的操作就是把text写入文件和读回来。现在的应用程序通常不用二进制文件作存储简单的变量,而用它来存储对象,对象集合以及其他机器代码。下面,将看到具体操作的例子。


读写文本文件


为了把text保存到文件,创建一个基于FileStream的StreamReader对象,然后调用Write方法把需要保存的text写入文件。下面的代码用SaveFileDialog提示用户指定一个文件,用于保存TextBox1的内容。



   SaveFileDialog1.Filter = _


      "Text Files|*.txt|All Files|*.*"


   SaveFileDialog1.FilterIndex = 0


   If SaveFileDialog1.ShowDialog = DialogResult.OK Then


       Dim FS As FileStream = SaveFileDialog1.OpenFile


       Dim SW As New StreamWriter(FS)


       SW.Write(TextBox1.Text)


       SW.Close()


       FS.Close()


   End If



同样采用类似的语句,我们读取一个文本文件,并把内容显示在TextBox控件中。StreamReader的ReadToEnd方法返回文件的全部内容。



   OpenFileDialog1.Filter = _


      "Text Files|*.txt|All Files|*.*"


   OpenFileDialog1.FilterIndex = 0


   If OpenFileDialog1.ShowDialog = DialogResult.OK Then


       Dim FS As FileStream


       FS = OpenFileDialog1.OpenFile


       Dim SR As New StreamReader(FS)


       TextBox1.Text = SR.ReadToEnd


       SR.Close()


       FS.Close()


   End If


各种对象的存储


采用BinaryFormatte以二进制的形式,或者用SoapFormatter类以XML格式都可以序列化一个具体的对象。只要把所有BinaryFormatter的引用改为SoapFormatter,无需改变任何代码,就可以以XML格式序列化对象。


首先创建一个BinaryFormatter实例:


   Dim BinFormatter As New Binary.BinaryFormatter()


然后创建一个用于存储序列化对象的FileStream对象:


   Dim FS As New System.IO.FileStream("c:\test.txt", IO.FileMode.Create)



接着调用BinFormatter的Serialize方法序列化任何可以序列化的framework对象:


   R = New Rectangle(rnd.Next(0, 100),rnd.Next(0, 300), _


         rnd.Next(10, 40),rnd.Next(1, 9))


   BinFormatter.Serialize(FS, R)



加一个Serializable属性使得自定义的对象可以序列化



   <Serializable()> Public Structure Person


       Dim Name As String


       Dim Age As Integer


       Dim Income As Decimal


   End Structure



下面代码创建一个Person对象实例,然后调用BinFormatter的Serialize方法序列化自定义对象:


   P = New Person()


   P.Name = "Joe Doe"


   P.Age = 35


   P.Income = 28500


   BinFormatter.Serialize(FS, P)


你也可以在同一个Stream中接着序列化其他对象,然后以同样的顺序读回。例如,在序列化Person对象之后接着序列化一个Rectangle对象:




BinFormatter.Serialize(FS, New Rectangle(0, 0, 100, 200))


     创建一个BinaryFormatter对象,调用其Deserialize方法,然后把返回的值转化为正确的类型,就是整个反序列化过程。然后



接着发序列化Stream的其他对象。



假定已经序列化了Person和Rectangle两个对象,以同样的顺序,我们反序列化就可以得到原来的对象:




   Dim P As New Person()


   P = BinFormatter.Serialize(FS, Person)


   Dim R As New Rectangle


   R = BinFormatter.Serialize(FS, Rectangle)


Persisting Collections


集合的存储


大多数程序处理对象集合而不是单个的对象。对于集合数据,首先创建一个数组(或者是其他类型的集合,比如ArrayList或HashTable),用对象填充,然后一个Serialize方法就可以序列化真个集合,是不是很简单?下面的例子,首先创建一个有两个Person对象的ArrayList,然后序列化本身:




   Dim FS As New System.IO.FileStream _


      ("c:\test.txt", IO.FileMode.Create)


   Dim BinFormatter As New Binary.BinaryFormatter()


   Dim P As New Person()


   Dim Persons As New ArrayList


   P = New Person()


   P.Name = "Person 1"


   P.Age = 35


   P.Income = 32000


   Persons.Add(P)


  


   P = New Person()


   P.Name = "Person 2"


   P.Age = 50


   P.Income = 72000


   Persons.Add(P)


  


   BinFormatter.Serialize(FS, Persons)


以存储序列化数据的文件为参数,调用一个BinaryFormatter实例的Deserialize方法,就会返回一个对象,然后把它转化为合适的类型。下面的代码反序列化文件中的所有对象,然后处理所有的Person对象:



   FS = New System.IO.FileStream _


      ("c:\test.txt", IO.FileMode.OpenOrCreate)


   Dim obj As Object


   Dim P As Person(), R As Rectangle()


   Do


       obj = BinFormatter.Deserialize(FS)


       If obj.GetType Is GetType(Person) Then


           P = CType(obj, Person)


           '' Process the P objext


       End If


   Loop While FS.Position < FS.Length - 1


   FS.Close()


下面的例子调用Deserialize方法反序列化真个集合,然后把返回值转换为合适的类型(Person):


   FS = New System.IO.FileStream("c:\test.txt", IO.FileMode.OpenOrCreate)


   Dim obj As Object


   Dim Persons As New ArrayList


   obj = CType(BinFormatter.Deserialize(FS), ArrayList)


   FS.Close()



 
   建站学堂
  ●  ASP编程技术
  ●  PHP编程技术
  ●  JSP编辑技术
  ●  ASP.NET编程技术
  ●  JAVA软件开发
  ●  C#软件开发
  ●  VB.NET软件开发
   网站推广与营销
  ● 网站备案的9个细节问题
  ● 网上注册一个域名的意义
  ● 网站从建设到运营的5点注意
  ● 8种提高网站ALEXA排名的方法
  ● 搜索引擎之间的4个区别
  ● 网站优化基本搜索引擎优化篇
  ● 点评A8音乐商业模式
  ● 5种不可取的网站推广方法
  ● SNS将成四大门户竞争的关键筹码
  ● 企业整站优化的一些技巧
  ● 马化腾创业三问
  ● 站长们每天都要做的工作
   网站优化与排名
  ● 快速提升访问量的方法
  ● 网站优化关键词工具,优化软件,SEO优化工具,SEO优化软件
  ● 总结四点分享我建站失败的经历
  ● 从达人圈到开心人人首谈SNS域名的选择与定位
  ● 良好心态是站长们成功的关键
  ● 浅谈做冷门站的一些心得体会
  ● 小游戏网站经营最重要的是站在用户的角度创新
  ● 关于网站首页打开速度之我见
  ● 谈一次域名解析出错带来的惨痛代价
  ● 我的地方论坛的建站之路经验总结
  ● 千人站长讲座第46期空姐网军哥谈特色社区运营
  ● 浅谈QQ类网站之站长的出路