C#学习笔记之十二
SYSTEM.IO类:
类名 说明 BinaryReader 用特定的编码将基元数据类型读作二进制值 BinaryWriter 以二进制形式将基元类型写入流,并支持用特定编码写入字符串 BufferedStream 给另一流上的读写操作添加一个缓冲层,无法继承此类 Directory 公开用于创建、移动和枚举通过目录和子目录的静态方法,无法继承此类 DirectoryInfo 公开用于创建、移动和枚举目录和子目录的实例方法,无法继承此类 DirectoryNotFoundException 当找不到文件或目录的一部分时引发的异常 DriveInfo 提供对有关驱动器的信息的访问 DriveNotFoundException 当尝试访问的驱动器或共享不可用时引发的异常 EndOfStreamException 读操作试图超出流的末尾引发的异常 ErrorEventArgs 为Error事件提供数据 File 提供用于创建、复制、删除、移动和打开文件的实例方法,并且帮助创建FileStream对象。无法继承此类 FileInfo 提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建FileStream对象。无法继承此类 File类是一个静态类,它不能显式的创建实例,提供了一些常用的静态方法:
方法 说明 CreateText(string FilePath) 创建或打开一个文件用于写入UTF-8编码的文本 OpenText(string FilePath) 打开现有UTF-8编码文本文件以进行读取 Open(string FilePath,FileMode) 打开指定路径上的FileStream,具有读写访问权限 Create(string FilePath) 在指定路径中创建文件 OpenRead(string FilePath) 打开现有文件以进行读取 AppendText(string FilePath) 创建一个StreamWriter,它将UTF-8编码文本追加到现有文件 在指定路径总创建文件使用Create()方法:public static FileStream Create(string path);注意要引用System.IO
判断文件是否存在的方法public static bool Exists(string path);
复制文件:public static void Copy(string sourceFileName,string destFileName,bool overwrite);
删除文件:public static void Delete(string path);
文 件的加密:public static void AddCrypt(string filename){File.Encrypt(filename);};文件的解密:public static void ReduceCrypt(string filename){File.Decrypt(filename);};加密文件后只有调用此方法的账户才能解密文件;
文件读取:
声明 含义 public static byte[]
ReadAllBytes(string path)
打开一个文件,将文件内容读入一个字符串,然后关闭该文件。返回一个字节数组 public static string[]
ReadAllLines(string path)
打开一个文本文件,读取文件的所有行,然后关闭该文件。返回一个字符串数组 public static string[]
ReadAllLines(string path,Encoding encoding)
打开一个文件,使用指定的编码读取文件的所有行,然后关闭文件。返回一个字符串数组 public static string
ReadAllText(string path)
打开一个文本文件,读取文件的所有行,然后关闭该文件。返回一个字符串 public static string
ReadAllText(string path,Encoding encoding)
打开一个文件,使用指定的编码读取文件的所有行。然后关闭该文件。返回一个字符串 文件夹类Directory,其构造函数为public Directory(string path);主要属性如下
属性 含义 Attributes 0x01表示只读,0x02表示隐藏 Name 当前路径名 Parent 上一级目录名 Root 所有根目录名 CreationTime 目录创建时间 LastAccessTime 上一次访问目录的时间 LastWriteTime 上一次修改目录的时间 常用Directory类成员方法如下
方法 说明 CreateDirectory 创建指定路径中的所有目录 Delete 删除指定的目录 Exists 确定给定路径是否引用磁盘上的现有目录 GetCurrentDirectory 获取应用程序的当前工作目录 GetDirectories 获取指定目录中子目录的名称 GetFiles 返回指定目录中的文件的名称 GetLogicalDrives 检索此计算机上格式为"<驱动器号>:\"的逻辑驱动器的名称 GetParent 检索指定路径的父目录,包括绝对路径和相对路径 Move 将文件或目录及其内容移到新位置 创建文件夹:public static DirectoryInfo CreateDirectory(string path);
删除文件夹:public static void Delete(string path);
获 取程序当前目录:public static string GetCurrentDirectory();获取指定目录子目录,返回字符串数组:public static string[] GetDirectories(string path);用指定的searchPattern搜索模式获取指定目录中的子目录,返回字符串数组:public satatic string[] GetDirectories(string path,searchPattern);用指定的searchPattern搜索模式指定是否包含子目录,获取指定目录中的子目录:public static string[] GetDirectories(string path,searchPattern,SearchOption searchOption);
文件信息类FILEINFO与FILE类不同,它提供的是实例方法。如果使用FileInfo必须要实例化;FileInfo常用属性如下:
属性 说明 Attributes 获取或设置当前FileSystemInfo的FileAttributes CreateionTime 获取或设置当前FileSystemInfo对象的创建时间 Directory 获取父目录的实例
DirectoryName 获取表示目录的完整路径的字符串 Exists 获取指定文件是否存在的值 Extension 获取表示文件扩展名部分的字符串 FullName 获取目录或文件的完整目录 IsReadOnly 获取或设置确定当前文件是否为只读的值 Length 获取当前文件大小 Name 获取文件名 文件夹信息类DIRECTORYINFO与FileInfo相同,都是实例化类;常用属性如下:
属性 说明 Attributes 获取或设置当前FileSystemInfo的FileAttributes CreationTime 获取或设置当前FileSystemInfo对象的创建时间 Exists 获取指定目录是否存在的值 Extension 获取表示文件扩展名部分的字符串 Name 获取此DirectoryInfo实例的名称 Parent 获取指定子目录的父目录 Root 获取路径的根部分 流是.NET操作文件基本类;输入流用于读取数据,输出流用于向外部目标写数据,常见的流类如下:
类 说明 Stream 抽象的基类Stream,支持读写字节 FileStream 支持通过Seek方法随机访问文件,支持同步及异步操作 MemoryStream 无缓冲的流,可以在内存中直接访问封装的数据 BufferedStream 为流添加缓冲过程 TextReader 用于Unicode字符的输出 StreamReader 从Stream读取字符,并用Encoding进行字符和字节之间的转换 StringReader 从String读取字符,允许使用相同的API处理String TextWriter 用于Unicode字符的输入 StreamWriter 向Stream写字符,并且使用Encoding将字符转换为字节 StringWriter 允许使用相同的API处理String BinaryReader 从流中读取二进制数据 BinaryWriter 向流中写入二进制数据 文件流类FileStream,为文件读写提供通道,而File对象相当于提供一个文件句柄,在文件操作中必须实例化一个FileStream类对象使用,常用的构造函数如下:
声明 说明 public FileStream(string path,FileMode Mode); 使用指定录几个和创建模式FileStream类的实例 public FileStream(string path,FileMode Mode,FileAccess access); 使用指定的路径和创建模式以及共享权限创建FileStream类的实例 public FileStream(string path,FileMode Mode,FileAccess access,FileShare share); 使用指定的路径和创建模式以及共享权限创建FileStream类的实例 FileMode指定创建文件流实例时打开指定文件的模式,有以下几种值:FileAccess用于指定读和写的访问权限。有如下可选值:FileShare指定共享访问权限,即多人同时对某一文件进行并发操作的使用权限。有如下可选值:
Delete:允许随后的请求删除文件;
Inheritable:使用文件句柄由子进程继承;
None:文件以独占方式打开,关闭前,任何请求都将失败;
Read:允许其他请求读取;
ReadWrite:允许其他请求读取和写入;
Write:允许其他写入;
Read:对文件的读访问;
ReadWrite:对文件的可读写访问;
Write:对文件的写访问;
Append:打开文件并定位到文件尾,或创建新的文件;
Create:创建新的文件,如果文件存在则被覆盖;
CreateNew:创建新的文件,如果文件存在,则引发IOException;
Open:打开现有文件,如果文件不存在,则引发FileNotFoundException;
OpenOrCreate:打开现有文件,如果文件不存在,创建新文件;
Truncate:打开现有文件,并将打开的文件截断为0字节大小;
文件流类FileStream常用属性:
属性 说明 public override bool CanRead{get;}
是否支持读取 public override bool CanSeek{get;} 是否支持查找 public override bool CanWrite{get;} 是否支持写 public override loog Length{get;} 获取流的长度
public override void SetLength(long value) 设置流的长度 public override long Position{get;set;} 获取或设置文件流当前位置 public virtual bool IsAsync{get;} 指定文件流是同步还是异步打开 流写入类StreamWriter构造函数如下:public StreamWriter(Stream stream);和public StreamWriter(string path);
流 读取类StreamReader一般与StreamWriter配套使用:public StreamReader(Stream stream);和public StreamReader(string path);流读取类StreamReader重载了TextReader类的Read、ReadLine、ReadToEnd和ReadBlock方 法;
二进制流写入类BinaryWriter支持特定编码写入字符串,常用构造如下:public BinaryWriter(Stream output);和public BinaryWriter(Stream output,Encoding encoding);
二 进制流读取类BinaryReader用特定的编码将基元数据类型读作二进制值,构造如下:public BinaryReader(Stream input);和public BinaryReader(Stream input,Encoding encoding);