C# 的 I/O

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.

时间: 2024-10-15 09:00:11