介绍
FileSystemInfo: 这是表示任何文件系统对象的基类。
File: 表示文件系统上的文件,用来来读取文件属性、查看文件属性、创建文件、移动文件、重命名文件 。
FileInfo:同File一样,File为静态类,Fileinfo需要实例化。
Directory:表示文件系统上的文件,用来读取文件夹属性、查看文件夹属性、创建夹文件、移动夹文件、重命名文件夹。
DirectoryInfo:同Directory一样,Directory为静态类,Directoryinfo需要实例化。
FileStream :(文件流) 这个类用于任意文件(包括二进制文件)中读写。
StreamWriter:(流读取器)专门用于写文本文件。
StreamReader:(流写入器)专门用于读文本文件。
使用File类读写文件
读文件
File.ReadAllText(FilePath):根据文件路径读取文件中所有的文本。
File.ReadAllBytes():方法可以打开二进制文件把内容读入一个字节数组。
File.ReadAllLines():以行的形式读取文件,一行一个字符串,返回一个字符串的数组。
写入文件
File.WriteAllText():
File.WriteAllLines():
File.WriteAllBytes():
使用FileStream类读写文件
FileStream文件流的创建
FileStream fs3 = new FileStream(@"c:\xx\xx.doc",FileMode.Create,FileAccess.Write,FileShare.None);
FileInfo myfile3 = new FileInfo(@"c:\xx\xx.doc");
FileStream fs6= myfile3.Open(FileMode.Append,FileAccess.Write,FileShare.None);
FileStream文件流的关闭
fs.Close();方法去关闭流,关闭流会释放与它相关联的资源。
FileStream文件流读取内容
int nextByte = fs.ReadByte():读取一个字节(0-255)的数据,返回结果,如果达到流的。
末尾,就返回-1
int nBytesRead = fs.Read(ByteArray,0,nBytes):读取多个字节,第一个是存放的数组,第二个参数是开始存放的索引,第三个参数是要读取多少个字节。返回的结果是读取的自己的实际个数,如果达到流的末尾 返回-1。
FileStream文件流写取内容
byte NextByte = 100;fs.WriteByte(NextByte):把一个字节写入文件流中。
fs.Write(ByteArray,0,nBytes): 把一个自己数组写入文件流中 参数同上。
读取流 - 写入流(StreamReader-StreamWriter)读写文本文件
创建文本的读取流
StreamReader sr = new StreamReader(@"c:\xx\ReadMe.txt"):(会检查字节码标记确定编码格式)。
StreamReader str = new StreamReader(@"c:\xx\xx.txt",Encoding.UTF8):指定编码格式,可取的编码格式 ASCII Unicode UTF7 UTF8 UTF32。
FileStream fs = new FileStream(@"c:\xx\xx.txt",FileMode.Open,FileAccess.Read,FileShare.None)
StreamReader sr = new StreamReader(fs):在文件流的基础上创建文本读取流
FileInfo myFile = new FileInfo(@"c:\xx\xx.txt");
StreamReader sr = myFile.OpenText():通过文件信息创建文本读取流-第二种方式
sr.Close();所有流用完之后关闭
读取文本文件
string nextLine = sr.ReadLine();//读取一行字符串
string restOfStream = sr.ReadToEnd();//读取流中所有剩余的文本内容
int nextChar = sr.Read();//只读取一个字符
int nChars = 100;
char[] charArray = new char[nChars];
int nCharsRead = sr.Read(charArray,0,nChars); 读取多个字符,第一个参数是
要存放的字符数组,第二个参数是从数组的哪一个索引开始放,第三个参数是读取多少个字
符 返回值是实际读取的字符的个数
文本写入流创建
StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt");(默认使用UTF-8编码)
StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt",true,Encoding.ASCII)第二个参数表示是否以追加的方式打开,第三个参数是编码方式
FileStream fs = new
FileStream(@"c:\xx\xx.txt",FileMode.CreateNew,FileAccess.Write,FileShare.Read);
StreamWriter sw = new StreamWriter(fs);通过FileStream创建StreamWriter
FileInfo myFile = new FileInfo(@"c:\xx\xx.txt");
StreamWriter sw = myFile.CreateText();通过FileInfo创建StreamWriter
sw.Close();所有流用完之后关闭
文本写入流-写入
string nextLine = "x xx x x x x ";sw.Write(nextLine);写入一行字符
char nextChar = 'a';
sw.Write(nextChar);写入一个字符
char[] charArray = ..;
sw.Write(charArray);写入字符数组
sw.Write(charArray,StartIndex,Length):写入字符数组的一部分,1:要写入的数组 2:开始索引 3写入长度。
二进制的读写
BinaryWriter- BinaryReader
写入二进制。
BinaryWriter writer=new BinaryWriter (FileStream)
writer.Write(value);
读取为对应的数据。
BinaryReader reader=new BinaryWriter (FileStream)
Return reader.ReadSingle() ;reader.ReadInt32();
BinaryFormatter
写入二进制。
BinaryFormatter f=new BinaryFormatter();
FileStream file;
String json;
f.Serialize(file,json);
File.close();
读取为对应的数据。
BinaryFormatter f=new BinaryFormatter();
FileStream file;
f.Serialize(file,json);
JsonUtility.FromJsonOverWrite((string)f.Deserialize(file),(写入的对象Object));
File.close();