.NET FileStream文件流,StreamReader文本流,MemoryStream內存流幾種流的實例

1、FileStream文件流ui

1.讀取數據url

 1    public class ReadFile
 2     {
 3         /// <summary>
 4         /// 讀取文件
 5         /// FileMode.Create  建立一個新文件,若是文件已經存在則改寫舊文件
 6         /// FileMode.CreateNew 建立一個文件,若是文件存在會發生異常,提示文件已經存在
 7         /// FileMode.Open  打開文件,若是文件不存在則異常
 8         /// FileMode.OpenOrCreate  打開文件,若是文件不存在,則建立一個新的文件而且打開文件
 9         /// FileMode.Append   打開現有文件,而且在現有文件內容後面追加,若是文件不存在則異常
10         /// FileMode.Truncate 根據現有操做系統,截取文件裏面的內容,若是文件不存在則異常
11         /// </summary>
12         public static void Read(string FilePath)
13         {
14             FileStream fileStream = null;
15             try
16             {
17               fileStream = new FileStream(FilePath, FileMode.Truncate);
18                 byte[] bytes = new byte[fileStream.Length];
19                 int read = fileStream.Read(bytes, 0, bytes.Length);
20                 var result = Encoding.UTF8.GetString(bytes);
21             }
22             catch (Exception e)
23             {
24                 if (fileStream != null)
25                 {
26                     fileStream.Dispose();
27                 }
28                 Console.WriteLine(e.Message);
29             }
30             finally
31             {
32                 if (fileStream != null)
33                 {
34                     fileStream.Close();
35                     fileStream.Dispose();
36                 }
37             }
38         }
39     }

2.寫入數據spa

 1    public class WriteFile
 2     {
 3         public static void WriteText(string FilePath,string writeString)
 4         {
 5             FileStream fileStream = null;
 6             try
 7             {
 8                 //根據路徑打開文件
 9                 fileStream = new FileStream(@"C:\Users\Administrator\source\repos\OperatFile\OperatFile\1.txt", FileMode.Append);
10                 //把字符串轉化成字節
11                 byte[] bytes = Encoding.UTF8.GetBytes(writeString);
12                 //寫入到文件
13                 fileStream.Write(bytes, 0, bytes.Length);
14             }
15             catch (Exception e)
16             {
17           if (fileStream != null)
18                 {
19                     fileStream.Dispose();
20                 }
21                 Console.WriteLine(e.Message);
22             }
23             finally
24             {
25                 //關閉和釋放
26                 if (fileStream != null)
27                 {
28                     fileStream.Close();
29                     fileStream.Dispose();
30                 }
31             }
32         }
33     }

2、StreamReader文本流操作系統

1.讀取數據日誌

 1    public class SteamReadFile
 2     {
 3         /// <summary>
 4         /// 讀取文件
 5         /// </summary>
 6         /// <param name="filePath">文件路徑</param>
 7         public static void ReadFile(string FilePath)
 8         {
 9             try
10             {
11                 using (StreamReader sr = new StreamReader(FilePath))
12                 {
13                     var result = sr.ReadToEnd();
14                     Console.WriteLine(result);
15                 }
16             }
17             catch (Exception e)
18             {
19 
20                 throw new Exception(e.Message);
21             }
22         }
23     }

2.寫入數據code

 1    public class StreamWriteFile
 2     {
 3         /// <summary>
 4         /// 寫入文件
 5         /// </summary>
 6         /// <param name="FilePath">文件路徑</param>
 7         /// <param name="WriteString">待寫入字符串</param>
 8         public static void WriteFile(string FilePath,string WriteString)
 9         {
10             try
11             {
12                 using (StreamWriter sr = new StreamWriter(FilePath))
13                 {
14                     sr.WriteLine(WriteString);
15                 }
16             }
17             catch (Exception e)
18             {
19                 throw new Exception(e.Message);
20             }
21         }
22     }

3.寫入日誌實例
blog

 1    public class LogHelper
 2     {
 3         /// <summary>
 4         /// 文件路徑
 5         /// </summary>
 6         public static string FilePath = @"C:\Users\Administrator\source\repos\OperatFile\OperatFile\Files";
 7         static LogHelper()
 8         {
 9             //判斷文件夾是否存在,若是不存在,則從新建立
10             if (!Directory.Exists(FilePath))
11             {
12                 Directory.CreateDirectory(FilePath);
13             }
14         }
15      /// <summary>
16         /// 日誌寫入
17         /// Path.Combine(str1,str2,str3)  把傳入的參數拼接起來,而後返回新的字符串
18         /// File.AppendText(fullPath) 根據文件路徑,把新寫入的內容,拼接到文本後面
19         /// </summary>
20         public static void WriteLog()
21         {
22             try
23             {
24                 var sb = BindData();
25                 string fullPath = Path.Combine(FilePath, $"{DateTime.Now.ToString("yyyy-MM-dd")}.txt");
26                 //判斷文件是否存在,若是不存在,則新建文件
27                 if (!File.Exists(fullPath))
28                 {
29                     File.Create(fullPath);
30                 }
31                 using (StreamWriter sw = File.AppendText(fullPath))
32                 {
33                     sw.WriteLine(sb.ToString());
34                 }
35             }
36             catch (Exception e)
37             {
38                 throw new Exception(e.Message);
39             }
40 
41         }
42      /// <summary>
43         /// 綁定日誌信息
44         /// </summary>
45         /// <returns></returns>
46         private static StringBuilder BindData()
47         {
48             StringBuilder sb = new StringBuilder();
49             DateTime operatDateTime = DateTime.Now;
50             string content = "讀寫文件功能";
51             string operators = "小明";
52             sb.AppendLine($"操做時間:{operatDateTime}");
53             sb.AppendLine($"操做內容:{content}");
54             sb.AppendLine($"操做人:{operators}");
55             sb.AppendLine("------------------------------------------------------------------------------------------");
56             return sb;
57         }
58     }

3、MemoryStream內存流內存

 1      /// <summary>
 2         /// 根據URL讀取內容到內存流
 3         /// </summary>
 4         /// <param name="url"></param>
 5         /// <returns></returns>
 6         public static string DownLoadByUrl(string url)
 7         {
 8             string result = string.Empty;
 9             MemoryStream ms = null;
10             HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
11             HttpWebResponse response = request.GetResponse() as HttpWebResponse;
12             using (var stream = response.GetResponseStream())
13             {
14           byte[] buffer = new byte[response.ContentLength];
15                 int actuallyRead = 0, offset = 0;
16                 do
17                 {
18                     actuallyRead = stream.Read(buffer, offset, buffer.Length - offset);
19                     offset += actuallyRead;
20 
21                 } while (actuallyRead > 0);
22                 ms = new MemoryStream(buffer);
23                 ms.Seek(0, SeekOrigin.Begin);
24                 var byteArray = new byte[ms.Length];
25                 ms.Read(byteArray, 0, byteArray.Length);
26                 result = Encoding.UTF8.GetString(byteArray);
27             }
28             response.Close();
29             response.Dispose();
30             return result;
31         }
相關文章
相關標籤/搜索