2015-10-07 82 views
-8

我已經存儲了我正努力在文本文件中寫入類對象的數組數據...(這不是完整的代碼)如何在c#中的文本文件中寫入或讀取對象數組?

class Program 
{ 
    public int i; 

    static void Main(string[] args) 
    { 
     Program p = new Program(); 

     user[] obj = new user[10]; 
     for (p.i = 0; p.i < 10; p.i++) 
     obj[p.i] = new user(); 
     int index = 0; 
+3

那麼,什麼是你的問題?如果您不明確要查找的內容*特定*,則此問題將被視爲不清楚。 –

+0

'user'的定義是什麼?請發佈**所有**的相關代碼,而不是一些不可編譯的代碼片段。 –

+0

問題是什麼 –

回答

2

讓你看起來類是這樣的:

[Serializable()] //Set this attribute to all the classes that want to serialize 
public class User : ISerializable //derive your class from ISerializable 
{ 
    public int userInt; 
    public string userName; 

    //Default constructor 
    public User() 
    { 
     userInt = 0; 
     userName = ""; 
    } 

    //Deserialization constructor. 
    public User(SerializationInfo info, StreamingContext ctxt) 
    { 
     //Get the values from info and assign them to the appropriate properties 
     userInt = (int)info.GetValue("UserInt", typeof(int)); 
     userName = (String)info.GetValue("UserName", typeof(string)); 
    } 

    //Serialization function. 
    public void GetObjectData(SerializationInfo info, StreamingContext ctxt) 
    { 
     //You can use any custom name for your name-value pair. But make sure you 
     // read the values with the same name. For ex:- If you write userInt as "UserInt" 
     // then you should read the same with "UserInt" 
     info.AddValue("UserInt", userInt); 
     info.AddValue("UserName", userName); 
    } 
} 

現在讀寫,你可以做這些:

User user=new User(); 

using(StreamWriter sw=new StreamWriter(/*Filename goes here*/)) 
{ 
    using(BinaryFormatter bformatter=new BinaryFormatter()) 
    { 
    bformatter.Serialize(sw, user); 
    } 
} 

using(StreamReader sr=new StreamReader(/*Filename goes here*/)) 
{ 
    using(BinaryFormatter bformatter=new BinaryFormatter()) 
    { 
    user=(User)bformatter.Deserialize(sr); 
    } 
} 

我得到了很多的代碼從http://www.codeproject.com/Articles/1789/Object-Serialization-using-C

+1

對不起,這只是不正確的。 'p'是'Program'實例,如果這就是你的意思,你不能確定'user'甚至可以轉換爲字符串/從字符串轉換。 –

+0

這就是爲什麼我說添加一個toString函數 –

+0

不,我不得不同意羅恩,這是一個可憐的答案。 –