【System.IO命名空间】
分类:
(1)用于 I/O 文件的类:
Directory
DirectoryInfo
File
FileInfo
FileStream
(2)用于从流读取和写入流的类:
StreamReader
StreamWriter
BinaryReader
BinaryWriter
通用 I/O 流类
BufferedStream
【导入System.IO】
DirectoryInfo:用于复制移动重命名创建删除目录的【实例方法】
实例方法需要创建对象
DirectoryInfo info=new DirectoryInfo(path);
info.方法;
Directory:用于复制移动重命名创建删除目录的【静态方法】
静态方法直接使用类名.方法调用
String path = "E:\\C#"; //文件地址
Directory.Exists(path); //判断目录是否存在
Directory.CreateDirectory(path); //创建目录
Directory.GetCreationTime(path).ToLongDateString();//获取目录创建的时间
String[]fileNames = Directory.GetFiles(path);//获取子文件
String[] directoryNames = Directory.GetDirectories(path);//获取子目录
Directory.Delete(path); //目录删除
Directory.GetFileSystemEntries(path); //返回指定目录的所有子目录和文件
Directory.GetCurrentDirectory();//返回程序当前工作的目录
Directory.GetLastAccessTime(path);//返回最后访问时间
Directory.GetLastWriteTime(path);//返回最后修改时间
Directory.GetParent(path);//返回指定目录的父目录
Directory.Move(要移动的目录,指定目录);//将目录移动到指定位置
Directory.SetCreationTime(path,日期);//设置创建日期
Directory.SetCurrentDirectory(path);//将工作目录设置为指定目录
Directory.SetLastWriteTime(path,时间);//设置最后修改时间
FileInfo :用于创建,复制,删除,移动文件的实例方法
实例方法需要创建对象
FileInfo info=new FileInfo(path);
info.方法;
File:用于创建,复制,删除,移动文件的静态方法
静态方法直接使用类名.方法调用
File.方法
File.AppendAllText(path,"",Encoding.Default);//将指定字符串追加到文件中若文件不存在则创建文件
File.WriteAllText(path,"",Encoding.Default);//创建新文件并写入内容,然后关闭该文件,目标文件已存在时覆盖该文件
String [] a=File.ReadAllLines(path,Encoding.Default);//打开文件并将所有行读入一个字符串,然后关闭该文件
File.OpenRead(path);//打开指定文件进行读取
【Encoding.Default】:编码方式
FileStream(文件流) :主要用于使用二进制方式读写文件数据,可读取任何文件
创建FileStream对象
FileStream stream=new FileStream(文件路径,FileMode.Append,FileAccess.ReadWrite,FileShare.Non
e);//创建FileStream对象
【FileMode】:指定系统打开文件的方式FileStream
(CreateNew创建新文件,Creat创建新文件,如果存在则覆盖,Open打开现有文件,OpenOrcreate打开文件,不存在则创建,Append打开文件查找到文件尾,Truncate打开文件并清除内容)
【FileAccess】:
指定文件的访问方式(Read只读,write只写,readwrite读写)
【FileShare】:
控制其他FileStream对象对此文件的访问权(none不共享,read允许随后打开文件并读取,write允许写入,readwrite允许读写)
例:
FileStream Reader=new FileStream(path,FileMode.Append,FileAccess.ReadWrite,FileShare.None);//创建FileStream对象
//读取数据
byte[] aa=new byte[Reader.Length];
Reader.Read(aa,0,aa.Length);//将文件中数据读入byte数组aa
Reader.Flush();
Reader.Close();
//写入数据
FileStream Write=new FileStream(path,FileMode.Append,FileAccess.ReadWrite,FileShare.None);//创建FileStream对象
Write.Write(aa,0,aa.Length);//从aa中取出数据写入文件
Write.Flush();
Write.Close();
Reader.ReadByte();//读取一个字节
reader.Position = 6;//绝对定位
Reader.Seek(0,SeekOrigin.Begin);相对定位
Write.WriteByte(字节);//将一个字节写入当前流
===========================================================BufferedStream:为Stream对象提供缓存,减少IO次数,提高读写效率
BufferedStream reader = new BufferedStream(Stream对象);
===========================================================StreamReader:以一种特定的编码从字节流中读取字符
===========================================================StreamWriter:以一种特定的编码向字节流中写入字符
//创建流
先创建Filestream对象
FileStream fose=new FileStream("e:\\",FileMode.Append,FileAccess.Read,FileShare.Delete);
根据FileStream对象创建StreamReader或StreamWriter对象
StreamReader reader=new StreamReader(fose,Encoding.Default);
FileStream fos=new FileStream(path,FileMode.Create,FileAccess.Read,FileShare.Inheritable);
StreamWriter write=new StreamWriter(fos,Encoding.Default);
int data;
data=reader.Read();//一个一个读取
char[] c=new char[1];
reader.ReadBlock(c,0,c.Length);//将读取的字符放入char数组
String qq=reader.ReadLine();//读取一行数据
reader.ReadToEnd();//从当前位置读到结尾
writer.Write((char)data);//写入Char型数据
writer.Write(datas, 0, len);//写入数组中的指定元素
writer.WriteLine(datas);//写入后换行
write.Write(数据类型);//写入数据,可以是任何基本数据类型
r
eader.BaseStream.Position:绝对定位
reader.BaseStream.Seek:相对定位
===========================================================BinaryReader:以一种特定的编码从字节流中读取基本数据类型数据
BinaryWriter:以一种特定的编码向字节流中写入基本数据类型数据
创建流
先创建Filestream对象
FileStream fos = new FileStream("E:\\C#\\stu.txt", FileMode.Create, FileAccess.Write);
根据FileStream对象创建 BinaryWriter或者BinaryReader
BinaryWriter writer = new BinaryWriter(fos, Encoding.Default);
//写入数据
writer.Write(name);
writer.Write(age);
writer.Write(sex);
writer.Write(score);
writer.Close();
fos.Close();
FileStream fis = new FileStream("E:\\C#\\stu.txt", FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fis, Encoding.Default);
//读取数据
reader.Readxxx();任意数据类型
reader.BaseStream.Position = 7;//绝对定位
Console.WriteLine(reader.ReadInt32());//
reader.BaseStream.Position = 0;
Console.WriteLine(reader.ReadString());
reader.Close();
fis.Close();