问题描述
好的,所以我制作了使用FileStream将2个文件连接在一起的程序。它从第一个文件中读取2个字节,从第二个文件中读取2个字节,并将它们交替写入输出文件,并且工作正常。
private void buttonInterleave_Click(object sender,EventArgs e)
{
FileStream fs1 = File.OpenRead(openFileDialogFileInput1.FileName);
FileStream fs2 = File.OpenRead(openFileDialogFileInput2.FileName);
FileStream fsout = File.OpenWrite(saveFileDialogFileOutput.FileName);
Interleave(fs1,fs2,fsout);
fs1.Close();
fs2.Close();
fsout.Close();
}
private void Interleave(FileStream fs1,FileStream fs2,FileStream fsout)
{
fsout.SetLength(fs1.Length * 2);
byte[] b1 = new byte[2];
byte[] b2 = new byte[2];
int i;
for (i = 0; i < (fs1.Length * 2); i = i + 4)
{
fs1.Read(b1,2);
fs2.Read(b2,2);
fsout.Write(b1,2);
fsout.Write(b2,2);
}
return;
}
private void buttonDeInterleave_Click(object sender,EventArgs e)
{
FileStream fs = File.OpenRead(OpenFileDialogFileInput.FileName);
FileStream fs1 = File.OpenWrite(saveFileDialogFileOutput1.FileName);
FileStream fs2 = File.OpenWrite(saveFileDialogFileOutput2.FileName);
DeInterleave(fs,fs1,fs2);
fs.Close();
fs1.Close();
fs2.Close();
}
private void DeInterleave(FileStream fsInput,FileStream fs1,FileStream fs2)
{
fs1.SetLength(fsInput.Length / 2);
fs2.SetLength(fsInput.Length / 2);
byte[] b1 = new byte[2];
byte[] b2 = new byte[2];
int i;
for (i = 0; i < (fsInput.Length); i = i + 4)
{
fsInput.Read(b1,2);
fsInput.Read(b2,2);
fs1.Write(b1,2);
fs2.Write(b2,2);
}
}
我最终得到了2个文件,其中都包含00。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)