基础流 | 装饰器流 | 包装器类 | 帮助类 |
继承自基本的stream流 | 在基础Stream上添加的功能 | 数据传输 | 对文件流的操作变简单 |
Stream | 对应的后备存储是文件 | 内存 | 网络资源 |
|
| FileStream | MemoryStream | NetWorkStream |
|
| IsolatedStorgaeFileStream: 继承自FileStream |
|
|
|
感觉还是挺类Java的。
BufferdStream | DeflateStream | GZipStream | CryptoStream | AuthenticatedStream |
System.io | System.IO.Compression | System.IO.Compression | System.Security.Cryptography | System.net.security |
增强缓存 | 压缩 | 解压缩 | 加密解密 | 安全性 |
联想装饰者模式,估计是在基本流上面加上一些其他功能,有点儿像对基本类型的功能上的扩展。
介绍流的用于数据传输;
TextWriter TextReader(定义的一组通用的,读取和写入字符数据的方式) |
|
StreamReader StreamWriter: 1,继承自 TextWriter TextReader,定义了一组通用的,读取和写入字符数据的方式
2,适用于读取和写入文本字符的场合
| BinaryReader:用于向流中以二进制的方式写入基元类型 BinaryWriter:用于从流中读取基元类型 |
StringReader StringWriter: 1,也继承自 TextWriter TextReader,用于处理字符串
|
|
#region StringReader,StringWriter的使用; // string text = @"姓名:水田如雅; // 年龄:20; // 性别:女"; // StringReader reader = new StringReader(text); // int c = reader.Read(); // Console.WriteLine((char)c); // char[] buffer = new char[7]; // reader.Read(buffer, 0, buffer.Length); // Console.WriteLine(string.Join("", buffer)); // string line = reader.ReadLine(); // Console.Write(line); // string rest = reader.ReadToEnd(); // Console.WriteLine(rest); // reader.Dispose(); // Console.ReadKey(); #endregion #region streamreader/StreamWriter的使用 //FileStream fs = new FileStream("AboutVac.txt", FileMode.Open, FileAccess.Read); //StreamReader reader=new StreamReader(fs,Encoding.GetEncoding("GB2312")); //do //{ // Console.WriteLine(reader.ReadLine()); //} while (reader.Read()>0); //StreamWriter writer = new StreamWriter("aboutMe.txt", false, Encoding.UTF8); //writer.Write("hello,word"); //reader.Dispose(); //writer.Dispose(); //Console.ReadKey(); #endregion #region BinaryReader/BinaryWriter的使用 //Product product = new Product("Product.txt") { // id=110, // price=123.3, // Name="lhc" //}; //product.Save(); //Product newItem =new Product("Product.txt"); //newItem.Load(); //Console.WriteLine(newItem); //Console.ReadKey(); #endregion
public class Product { public int id { get; set; } public string Name { get; set; } public double price { get; set; } private string filePath; public Product(string filePath) { this.filePath = filePath; } public void Save() { FileStream fs = new FileStream(this.filePath, FileMode.Create, FileAccess.Write); BinaryWriter writer = new BinaryWriter(fs); writer.Write(this.id); writer.Write(this.Name); writer.Write(this.price); writer.Dispose(); } public void Load() { FileStream fs = new FileStream(this.filePath, FileMode.Open, FileAccess.Read); BinaryReader reader = new BinaryReader(fs); this.id = reader.ReadInt32(); this.Name = reader.ReadString(); this.price = reader.ReadDouble(); reader.Dispose(); } public override string ToString() { return string.Format("ID:{0},Name:{1},Price:{2}", this.id, this.Name, this.price); } }
命名空间:system.io
File | FileInfo | Path | Directory/DirecoryInfo |
Create; Open; openRead; openWrite; Copy; |
| 处理路径 |
|
#region 工具类示例 // File.WriteAllText("FileTest.txt", "hello,i‘m using file ", Encoding.UTF8); #endregion
在使用的时候,还是应该先考虑已有的高级类是否封装了可用的方法,没有的话,再考虑使用基本类进行封装。
原文地址:http://blog.csdn.net/lhc1105/article/details/46583371