File和FileStream的区别
File是一个静态类;FileStream是一个非静态类。
File:是一个文件的类,对文件进行操作。其内部封装了对文件的各种操作(MSDN:提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建FileStream对象)。
FileStream:文件流的类。对txt,xml,avi等文件进行内容写入、读取、复制...时候需要使用的一个工具。
创建实例
string path = "D:test.txt"; FileStream fileStream1 = **new** FileStream(path, FileMode.Open); FileStream fileStream2 = **new** FileStream(path, FileMode.Open, FileAccess.Read); FileStream fileStream3 = **new** FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); FileStream fileStream4 = **new** FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 10, FileOptions.None);
//定义文件路径
string path = @"D:codetest.txt";
//创建 FileStream 类的实例
FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
//定义属性
string msg = "11111";
//将字符串转换为字节数组
byte[] bytes = Encoding.UTF8.GetBytes(msg);
//向文件中写入字节数组
fileStream.Write(bytes, 0, bytes.Length);
//刷新缓冲区
fileStream.Flush();
//关闭流
fileStream.Close();
class Program
{
static void Main(string[] args)
{
//定义文件路径
string path = @"D:codetest.txt";
//判断是否含有指定文件
if (File.Exists(path))
{
FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
//定义存放文件信息的字节数组
byte[] bytes = new byte[fileStream.Length];
//读取文件信息
fileStream.Read(bytes, 0, bytes.Length);
//将得到的字节型数组重写编码为字符型数组
char[] c = Encoding.UTF8.GetChars(bytes);
//输出
Console.WriteLine(c);
//关闭流
fileStream.Close();
}
else
{
Console.WriteLine("不存在!");
}
}
}
文件复制
public class FileSreamTest
{
public static void CopyFile(string source,string target)
{
//读取文件流
using (FileStream fsRead = new FileStream(source,FileMode.Open,FileAccess.Read))
{
//写入流
using (FileStream fsWrite = new FileStream(target,FileMode.OpenOrCreate,FileAccess.Write))
{
byte[] buffer = new byte[1024*1024*5];
while (true)
{
//返回读取字节数
int r= fsRead.Read(buffer,0,buffer.Length);
if (r==0)
{
break;
}
//写入
fsWrite.Write(buffer,0,r);
}
}
}
}
}
static void Main(string[] args)
{
string source =@"E:功能流程.7z";
string target=@"C:UsersCH190006DesktopTest功能流程.7z";
FileSreamTest.CopyFile(source,target);
Console.ReadKey();
}










