本帖最后由 hjk89757 于 2010-10-02 11:29:43 编辑

解决方案 »

  1.   


    除了学生,还有人会如此“被注”吗?干实际的工作时,只要符合a.txt的规范就可以,没人可以管你如何写代码。
      

  2.   

    File.AppendAllText
    序列化
    class person{}
    FileStream fs = new FileStream(@"D:/person.txt", FileMode.OpenOrCreate, FileAccess.Write);
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(fs, p);
    //反序列化 object obj=bf.Deserialize(fs)
    fs.Close();
      

  3.   

    如果“要求就是这样”,那么大多是面试题。其“解决”流程只能是:
    1. 反序列化出所有内容,在内存中形成对象的集合。
    2. 对此集合进行更改。
    3. 序列化并写到一个新的临时文件中。
    4. 删除原来的文件。
    5. 将临时文件改为此文件。
    6. 删除临时文件。如果在windows的临时文件目录,则不必删除,将来系统会自动定时清理垃圾。
      

  4.   

    实际上你的a.txt的规范是稀里糊涂的。如果这是一个比较专业的题目,不应该如此出题。我们知道,即使是大型的关系数据库,其数据保存形式最终也不过(几乎都)是文件形式的。比如说,a.txt中的数据是不是分块存储的?有没有多种数据结构(例如b+树)?如果是分块的,那么添加一个人员信息则需要按照a.txt的规范来查询空闲的数据库或者申请新的数据块,以随机顺序方式访问文件内容。至于是不是需要使用序列化、反序列化则根本不知道。所以看你的这个问题,大概出题者只知道把一个反序列的字符串重新写到文件中这一种操作概念,才会出出稀里糊涂不去描述a.txt内容规范的题目。
      

  5.   

    需要按照a.txt的规范来查询空闲的数据库或者申请  -->  需要按照a.txt的规范来查询空闲的数据块或者申请