二、FileStream类(继承自stream类):文件流
《一》构造方法:
1)new FileStream(string path , FileMode,FileAccess); 后两个参数都为枚举类型
2) new FileStream(string path , FileMode);
PS: (1)FileMode表示 操作系统打开文件的方式
(2)FileAccess表示 对文件进行什么样的操作
《二》方法:
1、ReadByte();
《==》从文件中读取一个字节,并将读取位置提升一个字节;
1)返回值类型为:int类型; 它表示的是这个字节的ASCII码值;如果要显示
为文件中本来的内容,可以将它强转为char类型;
2)当读取到文件中的最后一个字节时,再往下读时,将返回一个 -1;
2、Read( byte[] array, int offset , int count);
《==》从流中读取字节块并将该数据写入给定缓冲区中
1)第一个参数:将读取到的内容返回到 这个byte数组中
2)第二个参数(偏移量): 表示返回到byte数组中时,插入的位置
3)第三个参数:表示每次读取的最大字节数;
4)返回值类型为int:表示每次读取了多少个字节;当读完内容后,再次读取 时,返回的数字就为0了;
**例如:byte[] temp = new byte[10];
file1.Read(temp, 0,temp.Length);
这个就表示:每次读取的长度为10个字节,并将内容从temp数组的第0个元素开始起放入,直到放入10个字节; 如果offset偏移量设置为1,那么读取的 第十个字节就放不到这个数组中了;
3、WriteByte();
《==》每次写入一个字节
4、Write(byte[] array , int offset, int count);
《==》使用从缓存区读取的数据将字节块写入到文件中
5、Close();
《==》关闭当前流并释放与之关联的所有资源
6、Dispose()
《==》释放资源;
PS:因为 ClR无法自动释放,凡是含有Dispose方法的都要自己手动释放资源
(不严谨); 只有当要写入的内容大于缓存或者执行Dispose/Close方法时(也就是释放资源时),才会将内容写入到文件中;
7、Flush();
《==》清楚此流的缓冲区,使得所有的缓冲数据都写入到文件中;
8、Seek(偏移量,SeekOrigin);
《==》设置当前流的位置
1)第一参数为long类型,第二个参数为枚举类型;
2)如果参数一为 0 ,那么就看第二个参数;
如果参数一为正数n,那么 指针就会向前移动n个字节
如果参数为 负数n,那么 指针就会向后移动n个字节
9、using作用:
1)9、using(对象){};用于释放资源;实现了IDisposeble接口的类都需要using释放资源
2)为命名空间起个别名;
10、Stream类是个抽象类,它是所有流的抽象基类;