博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# IO流的操作
阅读量:6291 次
发布时间:2019-06-22

本文共 1256 字,大约阅读时间需要 4 分钟。

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更多的类以及操作请参考:

本文转自 guwei4037  51CTO博客,原文链接:http://blog.51cto.com/csharper/1619153

转载地址:http://ojuta.baihongyu.com/

你可能感兴趣的文章
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>