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