感谢您们回答我的问题--C#文件(读写)操作
我按您的答案作了一个测试,但我发现序列化后的流比我要存储的信息大很多!
我用了另一种方式来解决:
写入时通过System.BitConverter.GetBytes()和Encoding.Default.GetBytes()将要存放的数据转换成字符数组。然后存入文件。读出时通过相应的反函数来解码。
以下是我的程序,不足之处请指教:
using System;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
namespace FilePack
{
public class FilePack
{
[System.Serializable]
public struct PackHead
{
public char[] tag;
public uint length;
public uint block;
public uint count;
public byte[] getByteArray()
{
MemoryStream stm = new MemoryStream();
stm.Write(Encoding.Default.GetBytes(tag), 0, 4);
stm.Write(BitConverter.GetBytes(length),0,4);
stm.Write(BitConverter.GetBytes(block),0,4);
stm.Write(BitConverter.GetBytes(count),0,4);
return stm.ToArray();
}
}
public FilePack()
{
}
public bool CreatePack(string packFileName)
{
PackHead pHead = new PackHead();
FileStream fs;