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
|
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main(
string
[] args)
{
//将文件内容读到流中
Stream stream = File.Open(
"test.txt"
, FileMode.OpenOrCreate);
//初始化一个字节数组
byte
[] bytes =
new
byte
[(
int
)stream.Length];
//将流读到字节数组中
stream.Read(bytes, 0, bytes.Length);
//用MemoryStream接收
MemoryStream ms =
new
MemoryStream(bytes);
//从开始处设置
ms.Seek(0, SeekOrigin.Begin);
//再把返回的MemoryStream 写到另一个文件中去
ms.WriteTo(
new
FileStream(
"newFile.txt"
, FileMode.OpenOrCreate));
}
}
}
|
Stream是一个抽象类,而MemoryStream和FileStream都是Sream的子类。
而下面这个例子则演示了异步读取txt文本内容的方法。
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
|
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main(
string
[] args)
{
Console.WriteLine(GetTxt().Result);
}
/// <summary>
/// 异步读取txt文本内容
/// </summary>
/// <returns></returns>
public
static
async Task<
string
> GetTxt()
{
using
(Stream stream = File.Open(
"test.txt"
, FileMode.OpenOrCreate))
{
using
(StreamReader sr =
new
StreamReader(stream, Encoding.Default))
{
return
await sr.ReadToEndAsync();
}
}
}
}
}
|
关于IO更多的类以及操作请参考:https://msdn.microsoft.com/zh-cn/library/system.io(v=vs.110).aspx。
本文转自 guwei4037 51CTO博客,原文链接:http://blog.51cto.com/csharper/1619153