使用数据流来复制二进制文件,步骤如下:
1.用System.IO.FileStream 类的实例为源文件创建输入数据流.
2.用FileStream类的实例为目标创建输出数据流.
3.把内容从源文件转移到目标文件,不必解释文件的内容,也不必用数据流类型化类.
我们通常用缓冲来把数据从输入数据流转移到输出数据流。缓冲是一块内存区域,首先用输入数据流填充该区域,然后把该区域的数据写到输出数据流并清空该区域。这一填充/清空操作经常需要用到。
下面程序吧当前程序集的可执行文件复制到一个名为Copy.exe的文件,输出位于当前程序的文件夹中。
1.用System.IO.FileStream 类的实例为源文件创建输入数据流.
2.用FileStream类的实例为目标创建输出数据流.
3.把内容从源文件转移到目标文件,不必解释文件的内容,也不必用数据流类型化类.
我们通常用缓冲来把数据从输入数据流转移到输出数据流。缓冲是一块内存区域,首先用输入数据流填充该区域,然后把该区域的数据写到输出数据流并清空该区域。这一填充/清空操作经常需要用到。
下面程序吧当前程序集的可执行文件复制到一个名为Copy.exe的文件,输出位于当前程序的文件夹中。
class Program
{
static readonly int buffersize = 512;
static void Main(string[] args)
{
//当前应用程序集名称
string sExe = System.AppDomain.CurrentDomain.FriendlyName;
//创建输入输出数据流
FileStream inStream = File.OpenRead(sExe);
FileStream outStream = File.OpenWrite("Copy.exe");
//缓冲
byte[] buffer = new System.Byte[buffersize];
int nByteRead = 0;
//复制二进制数据
while ((nByteRead = inStream.Read(buffer , 0 , buffersize )) > 0)
{
outStream.Write(buffer , 0 , buffersize);
}
//关闭数据流
inStream.Close();
outStream.Close();
}
}
{
static readonly int buffersize = 512;
static void Main(string[] args)
{
//当前应用程序集名称
string sExe = System.AppDomain.CurrentDomain.FriendlyName;
//创建输入输出数据流
FileStream inStream = File.OpenRead(sExe);
FileStream outStream = File.OpenWrite("Copy.exe");
//缓冲
byte[] buffer = new System.Byte[buffersize];
int nByteRead = 0;
//复制二进制数据
while ((nByteRead = inStream.Read(buffer , 0 , buffersize )) > 0)
{
outStream.Write(buffer , 0 , buffersize);
}
//关闭数据流
inStream.Close();
outStream.Close();
}
}