文件流
//FileStream File //创建FileStream对象 FileStream f = new FileStream(@"F:\程序测试文件夹\new.txt",FileMode.OpenOrCreate,FileAccess.Read ); ///FileMode:Open 打开 如果没有就会报错 ///OpenOrCreate 打开文件,如果没有那就创建一个 ///Append 追加,不会把之前的覆盖 这几个是对文件进行操作 ///FileAccess 这是对所打开的文件进行操作 byte[] buffer = new byte[1024 * 1024 * 5]; //这里新建一个byte数组,长度大小为5M //返回本次实际读取到的有效字节数 int len=f.Read(buffer, 0, buffer.Length); //将字节数组中的每一个元素按照指定的编码格式解码成字符串 string s =Encoding .UTF8.GetString(buffer,0,len);//这里设定读取的长度,从0到实际读取到的有效字节数,不然会用空来补足buffer的5M长度 //关闭流 f.Close();//关闭 //释放所占用的资源 f.Dispose(); Console.WriteLine(s); Console.ReadKey();
//使用FileStream来写入数据,写入的时候用using,可以帮助自动清理内存 using (FileStream file2 = new FileStream(@"F:\程序测试文件夹\new2.txt", FileMode.OpenOrCreate, FileAccess.Write)) { string str = "看我有没有把你覆盖掉";//会把之间文件里的相应位置的字节给覆盖掉 byte[] buffer = Encoding.UTF8.GetBytes(str); file2.Write(buffer, 0, buffer.Length); } Console.WriteLine("ok"); Console.ReadKey();
//FileStream 是一点一点的读 是操作字节的,可以操作任何类型文件
//StreamReader和StreamWriter 操作字符的
//File 是一下子都读出来,只能操作小文件,几百k,几百字节