C#学习2017-9-26Notes8(文件和流,FileStream类)
- 文件和流
对于计算机而言,文件往往保存在磁盘之类的外部设备,对文件的操作常常涉及相关文件夹的操作,操作文件和操作文件夹程序是冯文文件的两个方面。
所谓“文件”是指按一定的结构形式存储在外部设备上的相关数据集合。
(1)文件有很多类型的标准,按照文件的访问方式可将文件分为顺序文件和随机文件的两种。
① 顺序文件,顺序存储的文件成为顺序文件,顺序文件没有内部逻辑结构。
② 随机文件:随机存取的文件成为随机文件,它以记录格式保存数据,文件由多个记录组成,每个记录都有相同的大小和格式;只要给出记录号,就可以迅速地找到指定的记录进行读写操作。
(2)按照文件的存储方式,可将文件纷纷为二进制文件和ASCII码文件
①二进制文件:数据以二进制方式存储,存储的基本单位为字节;二进制文件能够度邪恶所需要的字节,可以节省存储空间的避免编码转换。
③ ASCLL码文件中的数据已字符形式表示,因而便于垵字符形式逐个处理,也便于打印输出字符
(3).NET流(Stream)
对文件的访问可以借助文件流来实现,对文件读写时,将文件处理成字符流或二进制流,对文件的读写就是读取文件字符流或二进制流
在.NET框架中,对文件的读写操作借助于I/O数据的通用模型System.IO.对所有数据源使用相同的代码操作。
System.IO模型中的资源命名空间System.IO提供。
(4)C#中用于文件 eInfo
、例如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string path=@"F:\My.text";
if (!File .Exists (path))
{
string content="Hello";
File .WriteAllText (path ,content);
}
string appendText="This is extra text";
File .WriteAllText (path ,appendText);
string readText=File.ReadAllText(path);
Console.WriteLine(readText );
Console.Read();
}
}
}
2.FileStream类
用于实现文件读写的类都是Stream和Reader/Writer的的派生类,如FileStream类,StreamReader类,StreamWriter类,BinaryReader类和BinaryWriter类等。
FileStream还可以指定读写操作是同步还是异步。
使用FileStream类读写文件把所有数据都看作字节流,需要将数据先转换成字节。
FileStream对象支持使用Seek方法对文件进行随机访问。
Seek允许将读取/写入位置移动到文件中的任意位置。这是通过字节偏移参考点参数完成的。
字节偏移量是相对于查找参考点而言的,该参考点可以是基础文件的开始,当前位置或结尾,分别由SeekOrigin类的三个属性表示。