.NET I/O 学习笔记:文件的读和写
我們在對文件進行讀寫操作時首先需要把文件轉換成文件流(FileStream)對象。Stream類及其派生類(包括FileStream類)都提供了Read和Write方法,可支持在字節級別對數據進行讀寫。假如我們的程序需要將字符數據寫入到流中,需要先將字符數據轉換為字節數據之后才能將數據寫入到流中。所以.NET為我們提供了一下更方便的支持對流進行讀寫的類:BinaryWriter和BinaryReader、StreamWriter和StreamReader。
1.使用BinaryWriter?和?BinaryReader?對象
BinaryWriter:以二進制形式將基元類型寫入流,并支持用特定的編碼寫入字符串。
BinaryReader:用特定的編碼將基元數據類型讀作二進制值。
?
下面是示例代碼:
1 public static void WriterReadFile(string filePath) 2 { 3 FileStream fs = null; 4 if (File.Exists(filePath)) 5 { 6 Console.WriteLine("文件已存在."); 7 //return; 8 } 9 using (fs = new FileStream(filePath, FileMode.Create)) 10 { 11 BinaryWriter bw = new BinaryWriter(fs); 12 for (int i = 0; i <= 10; i++) 13 { 14 bw.Write(i); 15 } 16 } 17 using (fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) 18 { 19 BinaryReader br = new BinaryReader(fs); 20 for (int i = 0; i <= 10; i++) 21 { 22 Console.WriteLine(br.ReadInt32()); 23 } 24 } 25 }?
2.使用StreamWriter和StreamReader對象?
StreamWriter:實現一個?TextWriter,使其以一種特定的編碼向流中寫入字符。
StreamReader:實現從字符串進行讀取的?TextReader。
?
下面是示例代碼:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //如果文件不存在則創建文件 6 using (StreamWriter sw = File.AppendText("log.txt")) 7 { 8 WriteLog("日志1", sw); 9 WriteLog("日志2", sw); 10 sw.Close(); 11 } 12 using (StreamReader sr = File.OpenText("log.txt")) 13 { 14 ReadLog(sr); 15 } 16 17 Console.Read(); 18 } 19 20 /// <summary> 21 /// 記錄日志 22 /// </summary> 23 /// <param name="logMessage">日志信息</param> 24 /// <param name="sw">StreamWriter父類對象</param> 25 public static void WriteLog(string logMessage, TextWriter sw) 26 { 27 sw.Write("Log 開始:");//在.Net 4.5提供了異步讀寫方法 28 sw.WriteLine("{0} {1}",DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString()); 29 sw.WriteLine(" :"); 30 sw.WriteLine(" :{0}", logMessage); 31 sw.WriteLine("-----------------------------"); 32 //更新文件文本 33 sw.Flush(); 34 } 35 36 /// <summary> 37 /// 讀取日志 38 /// </summary> 39 /// <param name="sr"></param> 40 public static void ReadLog(StreamReader sr) 41 { 42 string line; 43 while((line =sr.ReadLine())!=null) 44 { 45 Console.WriteLine(line); 46 } 47 sr.Close(); 48 } 49 }?
猛擊下載:示例源碼
參考資料:
http://msdn.microsoft.com/zh-cn/library/36b93480(v=vs.100)
http://msdn.microsoft.com/zh-cn/library/3zc0w663(v=vs.100)
作者:晴天豬
出處:http://www.cnblogs.com/IPrograming?
本文版權歸作者和博客園共有,轉載請注明出處。
轉載于:https://www.cnblogs.com/IPrograming/archive/2012/08/30/Base_IO_2.html
總結
以上是生活随笔為你收集整理的.NET I/O 学习笔记:文件的读和写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net 流(Stream) - 文件流
- 下一篇: CV届牛人