(转).NET的IO:字节流
使用 Stream 类管理字节流
使用 FileStream 类管理文件数据
使用 MemoryStream 类管理内存数据
使用 BufferedSream 类提高流性能
3.1
FileStream
MemoryStream
Seek 定位,寻址
BufferedStream
3.2 管理应用程序数据
文本、流、字符串和二进制数据
管理文本数据和字符串
(1)TextReader 类 (抽象类)
(2)TextWriter 类 (抽象类)
管理字符串
使用 binaryReader 和 BinaryWrter 管理二进制数据
3.2.1.文件操作
//真的关联到某一个文件 //StreamReader对文本文件:读 <--父类:Stream //StreamWriter对文本文件:写 <--父类:Stream string file = @"F:\text.txt"; FileStream fs = File.Open(file, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("现在是:{0},", DateTime.Now); sw.Flush(); sw.Close(); StreamReader sr = new StreamReader(File.Open(file, FileMode.Open)); Console.WriteLine(sr.ReadToEnd());
3.2.2.字符串操作
//在内存中,把string当作文件来操作 //StringReader对string:读 <--TextReader //StringWriter对string:写 <--TextWiter StringBuilder sb = new StringBuilder(); StringWriter sws = new StringWriter(sb); sws.WriteLine(123 + 321); sws.WriteLine(true); StringReader srr = new StringReader(sb.ToString()); Console.WriteLine(srr.ReadToEnd());
3.2.3.二进制操作
//二进制 BinaryWriter bw = new BinaryWriter(File.Open(@"F:\a.dat", FileMode.OpenOrCreate)); bw.Write(true); bw.Write('A'); bw.Write(123); bw.Flush(); bw.Close(); //读取的时候要按照顺序 BinaryReader br = new BinaryReader(File.Open(@"F:\a.dat", FileMode.Open)); Console.WriteLine(br.ReadBoolean()); //对应true Console.WriteLine(br.ReadChar()); //对应'A' Console.WriteLine(br.ReadInt32()); //对应123