通常读写问文件的方法的方法有两种,一种主要是利用FileStream的读写直接读写文件,一种是利用StreamReader和StreamWriter这两个流操作类来读写文件。
1.通过FileStream读写文件
(1)File类,用来创建文件流FileStream对象
自定义打开文件的方式:File.Open(String fileName,FileMode);
打开文件进行读取:File.OpenRead(String fileName);如FileStreamfs=File.OpenRead("C:\\log.txt");
打开文件进行写入:File.OpenWrite(String fileName);如FileStreamfs=File.OpenWrite("C:\\log.txt");
(2)FileStream类,创建和操作文件流FileStream对象
FileStream fs=new FileStream(String 文件路径,FileMode 文件打开模式);
FileStream fs=new FileStream(String ,FileMode,FileAccess文件访问方式);
FileStream fs=newFileStream(String,FileMode,FileAccess,FileShare 文件共享方式);
FileMode一共包括6种枚举,告诉操作系统以何种方式打开文件:
FileAccess一共包括3个枚举项:
FileShare一共包括4个枚举项:
用FileStream对于文件的操作基本上要经过三个步骤:
举例1:
using(FileStreamfs=File.Open("C:\\log.txt",FileMode.Append))
{
byte[] buffer=System.Text.Encoding.Default.GetBytes("HelloWorld!");
fs.Write(buffer,0,buffer.Length);
fs.Close
}
举例2:
using(FileStream fs=newFileStream("C:\\log.txt",FileMode.Open,FileAccess.Read))
{
byte[] buffer=new byte[fs.Length];
fs.Read(buffer,0,buffer.Length);
fs.Close();
}
2.通过流读写器读写文件
文件流对象操作的是最底层的字节级数据,可以读取任何文件;而流读写器用来读写文本文件,它从底层封装了文件流,提供更便捷的读写方式,无需编解码操作(它默认使用UTF8编解码方式)。
(1)StreamReader类,用来读取文件
构造方法:
new StreamReader(Stream 读取的文件流);
new StreamReader(Stream 读取的文件流,Encoding 解码方式);
new StreamReader(String 读取的文件);如StreamReader sr=newStreamReader("C:\\log.txt");
File.OpenText(String 读取的文件);如StreamReadersr=File.OpenText(C:\\log.txt);
读方法
public string ReadLine();
public override string ReadToEnd();
(2)StreamWriter类,用来写入文件
构造方法:
StreamWriter(Stream 操作的文件流对象);
StreamWriter(String 写入的文件);如StreamWriter sw=newStreamWriter("C:\\log.txt");
StreamWriter(String 写入的文件,Boolean 是否追加);
StreamWriter(String 写入的文件,Encoding 编码方式);
File.AppendText(String 文件名)以及File.CreateText(String 文件名)
写方法
public void WriteLine(Char);
public void WriteLine(Double);
public void WriteLine(String);
举例1:
using(StreamReader sr=new StreamReader("C:\\log.txt"))
{
String ss=sr.ReadToEnd();
sr.Close();
}
举例2:
using(StreamWriter sw=new StreamWriter("C:\\log.txt"))
{
sw.WriteLine("Hello World!");
sw.Close();
}