C#之stream
来源:互联网 发布:mysql 按某个字段排序 编辑:程序博客网 时间:2024/05/22 03:36
在C#中经常要用stream
stream下面主要有
FileStream:使用文件作为后备设备。
BufferedStream:使用缓冲区作为后备设备,用来增强性能的中间存储。
MemoryStream:使用内存作为后备存储,执行I/O速度快。
NetworkStream:没有后备设备,用于在网络上传输数据。
CryptoStream:和其他流配合使用,执行加密/解密操作。
Stream类的常用方法:
Seek()方法:设置流的当前位置。
Read()方法和ReadByte()方法,对流执行同步读取操作。
Read()在流尾返回0,
ReadByte()返回-1。
Write()方法和WriteByte()方法,对流执行同步写入操作。
Flush()方法:清除缓存区中的内容,并将其内容强制转移至目标设备。
Close()方法:释放资源,如文件、套接字等。该方法自动执行Flush()方法。
使用流有什么好处了:
比如说memorystream:
:MemoryStream可以进行很多控制的,这个就好比你使用StreamReader来来操作文件,而不是直接操作文件一样。
MemoryStream 类创建这样的流,该流以内存而不是磁盘或网络连接作为支持存储区。MemoryStream 封装以无符号字节数组形式存储的数据,该数组在创建 MemoryStream 对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。
在读写文件的过程中,Filestream只可以进行以字节为单位原始数据流进行读写操作,为此,C#中提供了功能更加强大的StreamReader/ StreamWriter来支持文件的读写. StreamReader/ StreamWriter可以进行以字符为单位的数据读写操作..
一. 用StreamReader的构造函数
StreamReader有很多的构造函数:在这里只列出两个常用和比较常见的
StreamReader sr=new StreamReader (Stream); Stream可以是Filestream;
StreamReader sr=new StreamReader (String); String为指定的文件名初始化 StreamReader 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamReader sr = new StreamReader(filest);
//demo2
StreamReader another = new StreamReader(@"c:\abc.txt");
两个StreamReader都指向同一个文件.
StreamReader读取文件中的数据的代码
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();//读取文件中的一行
while(strLine!=null)//判断是否为空,表示到文件最后一行了
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();//关闭流
filest.Close();
程序运行结果和盘中abc.txt文件中的内容比较如下:
二. StreamWriter
StreamWriter 专门用于的向文件中写数据的,它和StreamReader类似,只是一个负责向文件中写数据,一个负责向文件中读数据而已.
StreamWriter 构造函数也有很多.在这里只举例两个构造函数.
StreamWriter sr=new StreamWriter (Stream); Stream可以是Filestream;
StreamWriter sr=new StreamWriter (String); String为指定的文件名初始化StreamWriter 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter (filest);
//demo2
StreamWriter another = new StreamWriter (@"c:\abc.txt");下面的例子可以让大家掌握写文件的方法.
FileStream filewriter = new FileStream(@"C:\abc.txt", FileMode.Append, FileAccess.Write);
以追加的方式打开文件,并进行写入操作.
StreamWriter sw = new StreamWriter(filewriter); 构造函数;
for (char mychar = 'a'; mychar <= 'z'; mychar++)
{
sw.Write(mychar);//将从a—z26个小写字母写入文件中.
}
sw.Close();filewriter.Close();
//demo
FileStream filest = new FileStream(@"c:\abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();
while(strLine!=null)
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();
filest.Close();
filest.Close();
以上两图是输出内容和abc.txt中内容的比较.
请大家仔细研读本程序.
- C#之stream
- C#之stream
- c# stream
- C#学习笔记之六(stream, Asynchronous data read, HttpWebRequest
- C# network stream
- C# stream <> byte[]
- C# Stream读写文本文件
- C# 温故而知新:Stream篇
- C#流(stream)
- C# Stream作用
- C# 温故而知新:Stream
- c#常见stream操作
- C#中Stream
- C#流(stream)
- C# Stream作用
- C#流(stream)
- C# Stream使用
- C#流(stream)
- 使用putty连接ubuntu
- POJ 3300 Tour de France(我的水题之路——车轮角速度最大)
- Android 反编译技术
- Qt学习之XML读写操作小结
- 从MySQL到MongoDB(添加MongoDB循环插入数据方法)
- C#之stream
- mysql中使用内置定时事件的功能来定时删除 binlog
- uva 729 - The Hamming Distance Problem 枚举排列
- FireBug 调试JS入门 —如何调试JS
- ARM版和x86版Windows 8的区别
- java 之 加密解密学习示例
- Oralce ORA-12154 无法解析指定的连接标识符
- PC机和移动设备上绝对路径的获取
- [Cocoa][译]苹果 Cocoa 编码规范中文版