2013-05-04 22 views
1

我已经从msdn中剔除了一些代码来写入和读取到一个xml文件来保存我的数据,但我需要一些帮助。我有一个名为darr的动态数组。据我了解,我用这个代码,将其存储在一个XML文件:在VB中反序列化不失败当文件不存在

Dim objStreamWriter As New StreamWriter("C:\temp\test.xml") 
    Dim x As New XmlSerializer(darr.GetType) 
    x.Serialize(objStreamWriter, darr) 
    objStreamWriter.Close() 

这来阅读:

Dim objStreamReader As New StreamReader("C:\temp\test.xml") 
    darr = x.Deserialize(objStreamReader) 
    objStreamReader.Close() 

的事情是,我希望应用程序从文件中读取在启动时,这意味着第二个块首先被调用,如果文件尚未退出,则会引发异常。 (如果第一个块没有找到,第一个块会自动创建文件。)所以有两个问题:

  1. 有没有办法让应用程序在第一次运行时自动创建文件?
  2. 由于文件将是空的...代码的工作?如果没有,是否有解决方法? (好吧,这是三个问题!)
+1

你可以轻松地为自己尝试这些东西。 – 2013-05-04 01:31:59

+0

那么,你不理解文件IO?因为'System.IO.File'类的答案非常明显。 – 2013-05-04 01:40:28

+0

我只是在学习这门语言,试图教我自己。感谢您指点我正确的方向。 – user2303355 2013-05-04 02:05:56

回答

0
If Not File.Exists("C:\temp\test.xml") Then 
     ' Create the file. 
      Dim file As System.IO.FileStream 
      file = System.IO.File.Create("C:\temp\test.xml") 
    Else 
      Dim objStreamWriter As New StreamWriter("C:\temp\test.xml") 
      Dim x As New XmlSerializer(darr.GetType) 
      x.Serialize(objStreamWriter, darr) 
      objStreamWriter.Close() 
End If