创建和读写文件的一些简单方法

来源:互联网 发布:有hao123软件 编辑:程序博客网 时间:2024/06/06 01:41

1 使用StreamWriter向文件写入数据

[c-sharp] view plaincopyprint?
  1. public static void WriteToLog(string logFileName, string data)  
  2.         {  
  3.             using (FileStream fileStream = new FileStream(logFileName, FileMode.Append, FileAccess.Write, FileShare.None))  
  4.             {  
  5.                 using (StreamWriter streamWrtie = new StreamWriter(fileStream))  
  6.                 {  
  7.                     streamWrtie.Write(data);  
  8.                 }  
  9.             }  
  10.         }  

2 用StreamReader读取文本

[c-sharp] view plaincopyprint?
  1. public static string  ReadAllLog(string logFileName)  
  2.        {  
  3.            if (!File.Exists(logFileName))  
  4.            {  
  5.                throw (new FileNotFoundException("logfile does not exit", logFileName));  
  6.            }  
  7.            string contents = "";  
  8.            using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))  
  9.            {  
  10.                using (StreamReader streamRead = new StreamReader(fileStream))  
  11.                {  
  12.                    contents = streamRead.ReadToEnd();  
  13.                }  
  14.            }  
  15.            return contents;  
  16.        }  

3 要逐行的读取文本,则使用peek()方法

[c-sharp] view plaincopyprint?
  1. public static void ReadLogPeeking(string logFileName)  
  2.         {  
  3.             if (!File.Exists(logFileName))  
  4.             {  
  5.                 throw (new FileNotFoundException("logfile does not exit", logFileName));  
  6.             }  
  7.             using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))  
  8.             {  
  9.                 using (StreamReader streamReader = new StreamReader(fileStream))  
  10.                 {  
  11.                     while (streamReader.Peek() != -1)  
  12.                     {  
  13.                         Console.WriteLine(streamReader.ReadLine());  
  14.                     }  
  15.                 }  
  16.             }  
  17.         }  

[c-sharp] view plaincopyprint?
  1. public static void ReadLogByLines(string logFileName)  
  2.         {  
  3.             if (!File.Exists(logFileName))  
  4.             {  
  5.                 throw (new FileNotFoundException("logfile does not exit", logFileName));  
  6.             }  
  7.             using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))  
  8.             {  
  9.                 using (StreamReader streamReader = new StreamReader(fileStream))  
  10.                 {  
  11.                     string text = streamReader.ReadLine();  
  12.                     while (text != null)  
  13.                     {  
  14.                         Console.WriteLine(text);  
  15.                         text = streamReader.ReadLine();  
  16.                     }  
  17.                 }  
  18.             }  
  19.         }  

4 若要读取一个字节则用read()方法

[c-sharp] view plaincopyprint?
  1. public static void ReadLogAsBytes(string logFileName)  
  2.        {  
  3.            if (!File.Exists(logFileName))  
  4.            {  
  5.                throw (new FileNotFoundException("logfile does not exit", logFileName));  
  6.            }  
  7.            using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))  
  8.            {  
  9.                using (StreamReader streamReader = new StreamReader(fileStream))  
  10.                {  
  11.                    while (streamReader.Peek() != -1)  
  12.                    {  
  13.                        Console.WriteLine(streamReader.Read());  
  14.                    }  
  15.                }  
  16.            }  
  17.        }  

5 按块读取,则要创建一个任意长度的缓冲区,这个长度根据你的性能需求来决定

[c-sharp] view plaincopyprint?
  1. public static void ReadAllBuffereLog(string logFileName)  
  2.         {  
  3.             if (!File.Exists(logFileName))  
  4.             {  
  5.                 throw (new FileNotFoundException("logfile does not exit", logFileName));  
  6.             }  
  7.             using (FileStream fileStream = new FileStream(logFileName, FileMode.Open, FileAccess.Read, FileShare.None))  
  8.             {  
  9.                 using (StreamReader streamReader = new StreamReader(fileStream))  
  10.                 {  
  11.                     while (streamReader.Peek() != -1)  
  12.                     {  
  13.                         char[] buffer=new char [10];  
  14.                         int bufferFileSize = streamReader.Read(buffer, 0, 10);  
  15.                         foreach (char c in buffer)  
  16.                         {  
  17.                             Console.Write(c);  
  18.                         }  
  19.                         Console.WriteLine();  
  20.                         Console.WriteLine(bufferFileSize);  
  21.                     }  
  22.                 }  
  23.             }  
  24.         }  

原创粉丝点击