天天看点

C# IO流的操作

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>/// &lt;summary&gt;</code>

<code>        </code><code>/// 异步读取txt文本内容</code>

<code>        </code><code>/// &lt;/summary&gt;</code>

<code>        </code><code>/// &lt;returns&gt;&lt;/returns&gt;</code>

<code>        </code><code>public</code> <code>static</code> <code>async Task&lt;</code><code>string</code><code>&gt; 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