1.标准数据流都是字符数据流,因此这些数据流都是读写字符
Console.Out 标准输出数据流
Console.In 标准输入数据流
Console.Error 标准错误数据流
2.所有的数据流类都是在System.IO空间里----所以要加上using System.IO
Stream代表 字节数据流
常用方法:
void Close()关闭数据流 void Flush() 无论缓冲器是否已满都建数据写入到物理设备中
int Read(存入的字节数组, 读取的起始位置, 被读的字节数)------成功返回字节的个数------字节块
//Read 处理输入 存入的数组只是暂时存储 <-------------
int ReadByte()--------成功返回字节的整数表示,到达末尾返回 -1 -------------------------单个字节
void WriteByte(byte b)--------把单个字节写到输出流
void Write(被写入的字节数组, 写入的起始位置, 写入的字节数)-----------------------------字节块
//Write 处理输出 被写入的数组只是暂时存储 --------------->
3.Stream 的 3 个派生类是: BufferedStream 包装字节数据流并加入缓冲,缓冲在许多情况下改进性能
FileStream 为文件I/O设计的字节数据流
MemoryStream 使用内存来存储的字节数据流
4.字符数据流包装件类的2个抽象类:
TextReader: 处理输入 TextWriter处理输出
TextReader常用方法:
void Close() 关闭数据源
int Read() 返回字符的对应的整数表示,到达末尾返回 -1
int Read(存入的字节数组, 读取的起始位置, 被读的字节数)------成功返回字节的个数
string ReadLine() 读取一行字符并将其作为字符串返回, 到达文件尾就返回null
string ReadToEnd() 读取数据流中所有剩下的字符并将它们作为字符串返回
TextWriter常用方法:
单个值----------------void Write(被写入的值)-----可以是int val , double val, bool val, string val, uint val, char val.....
一行值----------------void WriteLine()
-----------------------virtual void Close() 关闭数据流
-----------------------virtual void Flush() 使得缓冲器里面的数据写入到物理设备中
4.Console.In读取控制台输入(从控制台读取)----------------------------它是TextReader的实例
平时用的Console提供的方法自动从Console.In读取
Console的2个输入方法: Read(返回字符对应的整数)
逐行缓冲-------按下ENTER键才读取
且这些字符一直悬挂在输入缓冲器中直到读取它们
ReadLine(返回字符串)
一直读取字符,直到按下ENTER键
5.Console.Out 和 Console.Error (向控制台输出)写入控制台输出-----------------------是TextWriter的实例(即对象)
2个方法:
Write()
WriteLine()
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6.using System.IO-------------FileStream
创建连接于文件的字节数据流: FileStream(文件名--即文件的完整路径, 文件的操作方式)----默认为FileAccess.ReadWrite
(构造函数) FileStream(文件名--即文件的完整路径, 文件的操作方式, 访问权限)
访问权限: FileAccess.Read FileAccess.write FileAccess.ReadWrite
文件的操作方式:
FileMode.Append
FileMode.Create 创建输出文件,若有同名的文件(或者说文件已经存在)则会被删除再创建
FileMode.CreateNew 文件不能已经存在
FileMode.Open
FileMode.OpenOrCreate 存在就打开不存在就创建
FileMode.Truncate 打开已存在的文件但会将其长度减少到 0
几种异常: 原因如下
FileNotFoundException 文件不存在
IOException 由于I/O错误而不能打开文件
SecurityException 用户没有访问权
DirectoryNotFoundException 指定的目录无效
FileMode.