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
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


相关文章
|
7月前
|
存储 Linux API
Linux应用开发基础知识——文件IO操作(三)
Linux应用开发基础知识——文件IO操作(三)
89 2
Linux应用开发基础知识——文件IO操作(三)
|
Java 测试技术 Apache
Java IO 与 NIO:高效的输入输出操作探究
输入输出(IO)是任何编程语言中的核心概念,而在Java中,IO操作更是应用程序成功运行的基石。随着计算机系统变得越来越复杂,对IO的要求也日益增加。在本文中,我们将探讨Java IO和非阻塞IO(NIO)的重要性以及如何在Java中实现高效的输入输出操作。
|
存储 数据处理 索引
【100天精通python】Day27:文件与IO操作_CSV文件处理
【100天精通python】Day27:文件与IO操作_CSV文件处理
80 0
|
7月前
|
数据采集 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 操作数字IO 例程与相关资料
101 22
|
6月前
|
缓存 NoSQL Redis
redis管道操作(节省网络IO开销)
pipeline中发送的每个command都会被server立即执行,如果执行失败,将会在此后的响应中得到信息;也就是pipeline并不是表达“所有command都一起成功”的语义,管道中前面命令失败,后面命令不会有影响,继续执行。
58 1
|
7月前
|
Java
|
7月前
|
消息中间件 关系型数据库 Kafka
实时计算 Flink版操作报错之在执行任务时遇到了一个IO错误,具体表现为无法从本地主机(localhost)下载文件,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
7月前
|
监控 Java
Java一分钟之-NIO:非阻塞IO操作
【5月更文挑战第14天】Java的NIO(New IO)解决了传统BIO在高并发下的低效问题,通过非阻塞方式提高性能。NIO涉及复杂的选择器和缓冲区管理,易出现线程、内存和中断处理的误区。要避免这些问题,可以使用如Netty的NIO库,谨慎设计并发策略,并建立标准异常处理。示例展示了简单NIO服务器,接收连接并发送欢迎消息。理解NIO工作原理和最佳实践,有助于构建高效网络应用。
94 2
|
7月前
|
存储 Go 数据处理
Golang简单实现IO操作
Golang简单实现IO操作
60 1
|
7月前
|
存储 Java 编译器
Java文件IO操作基础
Java文件IO操作基础
59 0