2013-05-04 47 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