c#基礎入門(6)——File、FileStream、StreamReader、StreamWriter詳解

changuncle發表於2017-11-21

一、File

string file = @”E:\Study\Test\example.txt”;
1、string text = File.ReadAllText(file);
檔名不存在會報錯
2、string[] lines = File.ReadAllLines(file);
檔案不存在會報錯
3、byte[] bytes = File.ReadAllBytes(file);
檔案不存在會報錯
4、File.WriteAllText(file, “aaa”);
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,覆蓋原檔案
路徑不存在,會報錯
5、File.WriteAllLines(file, new string[]{“aaa”, “bbb”});
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,覆蓋原檔案
路徑不存在,會報錯
6、File.WriteAllBytes(file, Encoding.Default.GetBytes(“aaa”));
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,覆蓋原檔案
路徑不存在,會報錯
7、File.AppendAllText(file, “aaa”);
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,追加的文字會被放到檔案原有內容的末尾之後,若原有內容最後不是換行符,那追加的內容就會與原有內容處於同一行
路徑不存在,會報錯
8、File.AppendAllLines(file, new string[]{“aaa”, “bbb”});
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,追加的文字會被放到檔案原有內容的末尾之後,若原有內容最後不是換行符,那追加的內容就會與原有內容處於同一行
路徑不存在,會報錯
9、StreamWriter sw = File.AppendText(file);
sw.Write(“aaa”);
sw.WriteLine(“bbb”);//WriteLine會在字元末尾加上\r\n
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,追加的文字會被放到檔案原有內容的末尾之後,若原有內容最後不是換行符,那追加的內容就會與原有內容處於同一行

二、FileStream

string file = @”E:\Study\Test\example.txt”;
1、FileStream fs= new FileStream(file, FileMode.Open);
byte[] bytes = new byte[fs.length];
fs.Read(bytes, 0, fs.length);
fs.close();
2、FileStream fs= new FileStream(file, FileMode.Open);
byte[] bytes = Encoding.Default.GetBytes(“aaa”);
fs.Write(bytes, 0, bytes.Length);
fs.close();
路徑存在檔案不存在,會報錯
路徑存在檔案存在:
檔案現有內容是:蟈蟈first\r\n蟈蟈second\r\n蟈蟈third
Write內容為:aaabbb
Write之後:aaabbbrst\r\n蟈蟈second\r\n蟈蟈third
路徑不存在,會報錯
3、FileStream fs= new FileStream(file, FileMode.Create);
byte[] bytes = Encoding.Default.GetBytes(“aaa”);
fs.Write(bytes, 0, bytes.Length);
fs.close();
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,覆蓋原檔案
路徑不存在,會報錯
4、FileStream fs= new FileStream(file, FileMode.Append);
byte[] bytes = Encoding.Default.GetBytes(“aaa”);
fs.Write(bytes, 0, bytes.Length);
fs.close();
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,追加的文字會被放到檔案原有內容的末尾之後,若原有內容最後不是換行符,那追加的內容就會與原有內容處於同一行
路徑不存在,會報錯

三、StreamReader

string file = @”E:\Study\Test\example.txt”;
1、StreamReader sr = new StreamReader(file);
FileStream fs = new FileStream(file, FileMode.Open);
sr = new StreamReader(fs);
string line = “”;
while(sr.EndOfStream())
{ line = sr.ReadLine();
}
fs.close();
2、StreamReader sr = new StreamReader(file);
FileStream fs = new FileStream(file, FileMode.Open);
sr = new StreamReader(fs);
string text = sr. ReadToEnd();
fs.close();

四、StreamWriter

string file = @”E:\Study\Test\example.txt”;
1、StreamWriter sw = new StreamWriter(file);
FileStream fs = new FileStream(file, FileMode.Create);
sw = new StreamWriter(fs);
sw.Write(“aaa”);
sw.WriteLine(“bbb”);
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,覆蓋原檔案
路徑不存在,回報錯

2、StreamWriter sw = new StreamWriter(file);
FileStream fs = new FileStream(file, FileMode.Append);
sw = new StreamWriter(fs);
sw.Write(“aaa”);
sw.WriteLine(“bbb”);
路徑存在檔案不存在,建立新檔案
路徑存在檔案存在,追加的文字會被放到檔案原有內容的末尾之後,若原有內容最後不是換行符,那追加的內容就會與原有內容處於同一行
路徑不存在,回報錯

相關文章