日期:2014-05-18  浏览次数:20420 次

怎样读入一个二进制文件,在头部写上几个字符?
怎样读入一个二进制文件,在头部写上几个字符?

------解决方案--------------------
笨狼,好久不见你散分
------解决方案--------------------
笨狼在潜水吧
------解决方案--------------------
一个byte[]文件内容
一个byte[]要写的内容
Copy到一个新Byte[]就可以了
------解决方案--------------------
//怎样读入一个二进制文件,在头部写上几个字符
不知所云~
------解决方案--------------------
FileStream.Read 读,.Write写
------解决方案--------------------
定义一个byte数组作缓冲区,循环读写
------解决方案--------------------
先把文件内容读到内存中,然后再写新加的内容,然后写旧的内容. BinaryReader BinaryWriter
------解决方案--------------------
定义一个byte数组,先写入你需要写的字符串,然后再在后面添加byte
------解决方案--------------------
// 创建测试数据
string path = Server.MapPath( "~/App_Data/ForBinary.data ");
Stream stream = File.Open(path, FileMode.Open);
BinaryWriter writer = new BinaryWriter(stream);
for (int i = 10; i < 100; i++) {
writer.Write(i);
}
writer.Close();
stream.Close();

// 读取数据
stream = new FileStream(path, FileMode.Open);
BinaryReader reader = new BinaryReader(stream);
byte[] oldBuffer = reader.ReadBytes(1024);
//Response.Write(oldBuffer.Length);
reader.Close();
stream.Close();

// 插入头部数据
int insertSize = 10;
byte[] newBuffer = new byte[oldBuffer.Length + insertSize];
for (int i = 0; i < insertSize; i++) {
newBuffer[i] = (byte)i;
}
Array.Copy(oldBuffer, 0, newBuffer, insertSize, oldBuffer.Length);
//Response.Write(newBuffer.Length);

// 写入数据
path = Server.MapPath( "~/App_Data/ForBinary2.data ");
stream = File.Open(path, FileMode.OpenOrCreate, FileAccess.Write);
writer = new BinaryWriter(stream);
writer.Write(newBuffer, 0, newBuffer.Length);
writer.Close();
stream.Close();