2016-11-15 40 views
0

我正在構建一個程序,將數據保存到文本文件並再次檢索以備後用。程序必須具備的功能之一是它必須保存日期和時間。如何讀取和寫入日期到C#中的文本文件

到目前爲止,我使用下面的代碼來讀取和寫入這些日期和時間:

//Write dates to text file: 
String path = string.Concat(Environment.CurrentDirectory, @"\database\bob.txt"); 
StreamWriter save = new StreamWriter(path); 
DateTime time = DateTime.Now; 
save.WriteLine(time); 
save.Dispose(); 

和:

//Read data from text file: 
StreamReader reader = new StreamReader(path); 
label.Content = reader.ReadLine(); 
reader.Dispose(); 

現在,從這樣我可以證實,日期被保存到文本文件,但程序不會將其讀入標籤。無論如何,它是否會讀入標籤以便我可以顯示日期?

+1

您是否嘗試過使用File.WriteAllText()和File.ReadAllText()?在這種情況下它們更簡單。 – axlj

+0

我正在使用文本文件來保存多行數據....但是說我總是可以修剪掉一切我不需要的東西 – walkman118

+1

不知道你使用的是什麼顯示技術(Winforms,WPF,ASP)。 NET等)...很難說,但在Winforms中,通過設置'.Text'屬性來更改標籤的內容。 –

回答

0

通常最好是保存一個對象圖,而不是像這樣零散地寫數據。

如果你有格式的控制權(它顯示你做),那麼我會建議一個JSON或XML格式。

這是VB,但容易翻譯到C#:

''' JSON, Use NuGet to Install NewtonSoft.Json 
Imports Newtonsoft.Json 
Imports System.IO 

Public Class SomethingIWantToSave 

    Public Shared Function Load(byval path As String) As SomethingIWantToSave 

     Dim result As SomethingIWantToSave = Nothing 
     Dim content As String = String.Empty 

     If File.Exists(path) Then 
      content = File.ReadAllText(path) 
      result = JsonConvert.DeserializeObject(Of SomethingIWantToSave)(content) 
     End If 

     return result 

    End Function 



    Public Sub Save(byval path As String) 

     Dim content As String = JsonConvert.Serialize(Me) 

     File.WriteAllText(path, content) 

    End Sub 

End Class 


Use the class like so: 
    ' load existing data 
    Dim data As SomethingIWantToSave = SomethingIWantToSave.Load(Path.Combine("c:\yadda", "yadda", "content.json")) 

    ' make changes if you like. 
    ... 

    ' save data back to disk 
    data.Save(Path.Combine("c:\yadda", "yadda", "content.json")) 

類似的技術可用於使用System.Xml.XmlSerializer類XML。