通常讀寫問文件的方法的方法有兩種,一種主要是利用FileStream的讀寫直接讀寫文件,一種是利用StreamReader和StreamWriter這兩個流操作類來讀寫文件。
1.通過FileStream讀寫文件
(1)File類,用來創建文件流FileStream對象
自定義打開文件的方式:File.Open(String fileName,FileMode);
如FileStreamfs=File.Open("C:\\log.txt",FileMode.Append);
打開文件進行讀取:File.OpenRead(String fileName);如FileStreamfs=File.OpenRead("C:\\log.txt");
打開文件進行寫入:File.OpenWrite(String fileName);如FileStreamfs=File.OpenWrite("C:\\log.txt");
(2)FileStream類,創建和操作文件流FileStream對象
File類的構造方法有如下幾種形式:
FileStream fs=new FileStream(String 文件路徑,FileMode 文件打開模式);
FileStream fs=new FileStream(String ,FileMode,FileAccess文件訪問方式);
FileStream fs=newFileStream(String,FileMode,FileAccess,FileShare 文件共享方式);
FileMode一共包括6種枚舉,告訴操作系統以何種方式打開文件:
Append:打開現有文件,準備向文件追加數據,只能同FileAccess.Write一起使用;
Create:指示操作系統創建新文件,如果文件已經存在則覆蓋;
CreateNew:指示操作系統創建新文件,如果文件已經存在則引發異常;
Open:打開現有文件,打開文件的能力取決於FileAccess所指定的值;
OpenOrCreate:打開文件,如果文件不存在則創建新文件;
Truncate:打開現有文件,並且清除文件的內容
FileAccess一共包括3個枚舉項:
Read:對文件讀訪問;ReadWrite:對文件讀或寫訪問;Write:對文件寫操作;
FileShare一共包括4個枚舉項:
None:謝絕共享當前文件;
Read:允許別的程序讀取當前文件;
ReadWrite:允許別的程序讀寫當前文件;
Write:允許別的程序寫當前文件;
用FileStream對於文件的操作基本上要經過三個步驟:
a 創建文件讀寫流對象
b 寫或讀操作
c 關閉文件流
舉例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 讀取的文件流);
如StreamReader sr=newStreamReader(File.OpenRead("C:\\log.txt"));
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 操作的文件流對象);
如StreamWritersw=new StreamWriter(File.OpenWrite("C:\\log.txt"));
StreamWriter(String 寫入的文件);如StreamWriter sw=newStreamWriter("C:\\log.txt");
StreamWriter(String 寫入的文件,Boolean 是否追加);
如StreamWriter sw=new StreamWriter("C:\\log.txt",false);
StreamWriter(String 寫入的文件,Encoding 編碼方式);
File.AppendText(String 文件名)以及File.CreateText(String 文件名)
如StreamWritersw=File.CreateText("C:\\log.txt");
寫方法
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();
}