如题  在线等具体情况是这样的,文件内容包含两部分A和B,先从外部设备获取A,用StreamWriter写入到文件,再获取B信息(该顺序不能颠倒),写入到文件。写完B之后,会得到一个统计信息要写到A和B之间的位置。可惜StreamWriter没有找到tell类似的函数能在写完A后返回这个指针位置,然后再写完B后通过Seek函数到这个指针位置,从A后面写入统计信息。
同志们怎么解决这样的问题呀? 查了一点资料说C#只能通过append的方式写文件,不能从中间插入,不然会覆盖后面的内容,不知道是不是。我该怎么做呢?C#文件指针

解决方案 »

  1.   

    关于文件的问题,那不是什么c#的问题。你如果了解一下文件系统的基本原理就知道,文件是基于流的,它的底层基本概念上不存在什么“中间插入”的概念。如果你要“插入”1个字节,那么你需要把B整个重新复制一遍。
      

  2.   

    本来就是这样,任何编程语言都没办法允许你从“中间插入”。这很好理解,文件在磁盘上是连续存储的(事实上是一个链表,但是这是文件系统层次的事情),所以要“中间插入”,只能是把这个位置后面的数据拷贝出来,腾出空间容纳插入的内容,这是非常低效的。
      

  3.   

    你应该自己设计合理的数据结构,使得追加在最后,程序可以仍然视作这些数据在“中间”。