文件流基本操作FileStream
FileStream fs = File.Open(@"c:\1.txt", FileMode.Write);
//创建一个只读的文件流!
FileStream fs1 = File.OpenRead("1.txt");
//创建一个只写的文件流
FileStream fs2 = File.OpenWrite("1.txt");
//流是通过byte字节来实现的
fs.Write(byte数组,偏移量,要写入的字节数);
//如
string s1 = "aaaaaaaaa"
//写入流,先将s1转换为byte数组
byte [] byts = System.Text.Enconding.UTF8.GetBytes(s1);
fs.Flush();//清空缓冲区
fs.Close();//关闭文件流
fs.Dispose;//释放非托管支援
另外一种创建流的方法
using(FileStream fs = File.Open(@"c:\1.txt", FileMode.OpenOrCreate)
{
fs.Write(byts,0,byts.Length);
}
using(FileStream fs = File.Open(@"c:\1.txt", FileMode.Open)
{
byte [] byts = new byte [1024 * 1024];//每次读取1M
//byts 将读取出来的流字节保存到数组内
//byts.Length 本次最多读取字节数
int r = fs.Read(byts,0,byts.Length);//本次实际读取到字节的个数
//转换为字符串
string s1 = System.Text.Enconding.UTF8.GetString(byts);
}
//获取当前流的字节树
int readLen = (int)fsRead.Length;
拷贝大文件
1,定义源文件和目标文件,绝对路径
2,设置读取方法,参数是源文件和目标文件
3,实现文件
1)读
2)创建文件流
3)循环读取文件流
4)创建写入流
5)写入文件
//定义源文件和目标文件,绝对路径
string source = "";
string target = "";
CopyBigFile(source, target);
//方法
//3,实现文件
/// <summary>
/// 拷贝大文件
/// </summary>
/// <param name="source">原绝对路径</param>
/// <param name="target">新绝对路径</param>
private static void CopyBigFile(string source, string target)
{
//1)读
//2)创建文件流
using (FileStream fsRead = new FileStream(source, FileMode.Open))
{
//4)创建写入流
using (FileStream fsWrite = new FileStream(target, FileMode.Create))
{
//缓冲区
byte[] byts = new byte[1024 * 1024 * 18];
//3)循环读取文件流
while (true)
{
int r = fsRead.Read(byts, 0, byts.Length);
if (r <= 0)
{
break;
}
//5)写入文件
fsWrite.Write(byts, 0, byts.Length);
}
}
}
}