C# IO流的操作非常重要,我們讀寫檔案都會使用到這個技術,這裡先示範一個檔案内容複制的例子,簡要說明C#中的IO操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<code>namespace</code> <code>ConsoleApplication1</code>
<code>{</code>
<code> </code><code>class</code> <code>Program</code>
<code> </code><code>{</code>
<code> </code><code>static</code> <code>void</code> <code>Main(</code><code>string</code><code>[] args)</code>
<code> </code><code>{</code>
<code> </code><code>//将檔案内容讀到流中</code>
<code> </code><code>Stream stream = File.Open(</code><code>"test.txt"</code><code>, FileMode.OpenOrCreate);</code>
<code> </code><code>//初始化一個位元組數組</code>
<code> </code><code>byte</code><code>[] bytes = </code><code>new</code> <code>byte</code><code>[(</code><code>int</code><code>)stream.Length];</code>
<code> </code><code>//将流讀到位元組數組中</code>
<code> </code><code>stream.Read(bytes, 0, bytes.Length);</code>
<code> </code><code>//用MemoryStream接收</code>
<code> </code><code>MemoryStream ms = </code><code>new</code> <code>MemoryStream(bytes);</code>
<code> </code><code>//從開始處設定</code>
<code> </code><code>ms.Seek(0, SeekOrigin.Begin);</code>
<code> </code><code>//再把傳回的MemoryStream 寫到另一個檔案中去</code>
<code> </code><code>ms.WriteTo(</code><code>new</code> <code>FileStream(</code><code>"newFile.txt"</code><code>, FileMode.OpenOrCreate));</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code>}</code>
Stream是一個抽象類,而MemoryStream和FileStream都是Sream的子類。
而下面這個例子則示範了異步讀取txt文本内容的方法。
<code> </code><code>Console.WriteLine(GetTxt().Result);</code>
<code> </code><code>/// <summary></code>
<code> </code><code>/// 異步讀取txt文本内容</code>
<code> </code><code>/// </summary></code>
<code> </code><code>/// <returns></returns></code>
<code> </code><code>public</code> <code>static</code> <code>async Task<</code><code>string</code><code>> GetTxt()</code>
<code> </code><code>using</code> <code>(Stream stream = File.Open(</code><code>"test.txt"</code><code>, FileMode.OpenOrCreate))</code>
<code> </code><code>{</code>
<code> </code><code>using</code> <code>(StreamReader sr = </code><code>new</code> <code>StreamReader(stream, Encoding.Default))</code>
<code> </code><code>{</code>
<code> </code><code>return</code> <code>await sr.ReadToEndAsync();</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
本文轉自 guwei4037 51CTO部落格,原文連結:http://blog.51cto.com/csharper/1619153