1、FileStream:是以字节为单位,可以操作所有类型的数据文件StreamReader和StreamWrite:以字符为单位,操作字符串等他们都存在与IO的命名空间下,添加命名空间快捷方式ATL+SHIFT+F10
2、//创建filestream文件流对象有三个属性 * 路径,filemode,fileacess * 写入步骤:1.创建对象 2.将要写入的字符串 3.将字符串通过encoding的方法转换成字节 4.通过.write方法将字节数组写入到文件中 * 读入步骤:1.创建对象 2.创建一个限定大小的byte数组 3.通过.read方法读取有限字节的长度 4.将读取到的数据转换成字符串 5.打印字符串
3、FileStream读取文件 using (F坡纠课柩ileStream fsRead=new FileStream(@"C:\Documents and Settings\Administrator\桌面\直接按组分配.txt",FileMode.OpenOrCreate,FileAccess.Read)) { byte[] by=new byte[1024*1024*5]; int r=fsRead.Read(by, 0, by.Length); string s=Encoding.Default.GetString(by, 0, r); Console.WriteLine(s); }using(创建对象,并且定义文件流的动作){ 具体操作}这样写可以自动关闭文件流释放空间
4、FileStream写入文件using (FileStream fsWrite = new FileStream(@"C:\Documents and Settings\Administrator\桌面\1.txt", FileMode.OpenOrCreate, FileAccess.Write)) { string s = "今天天气不错,让我们出去刷刷吧"; byte[] buffer = Encoding.Default.GetBytes(s); fsWrite.Write(buffer, 0, buffer.Length); Console.WriteLine("写入成功"); Console.ReadKey(); }
5、复制多媒体文件先读取原文件,然后再写入到新文件中using (FileStream fsRead = new FileStream(@"C:\Documents and Settings\Administrator\桌面\1_.apk", FileMode.OpenOrCreate, FileAccess.Read)) { //创建一个负责写入的流 using (FileStream fsWrite = new FileStream(@"C:\Documents and Settings\Administrator\桌面\2.apk", 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);///写入 } } } Console.ReadKey();结果会生成两个一样大小的文件,如图