打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
笔记1: 输入输出I/O流架构




一、I/O类

      根据数据存取类型,提供I/O各种功能的类,这些类主要位于System.IO。


      I/O类可分为两类:  1、专门操作文件、目录;

                                          2、处理各类数据的存取。


      1、文件目录类主要有两大类:  (1)  派生于Object的通用类Directory,File,Path

                                                            (2)派生于FileSystemInfo的两个特定类:FileInfo,DirectoryInfo


       2、数据存取类主要有三种:    (1)二进制;

                                                            (2)字节;

                                                             (3)字符。

                                                         最重要的是Stream类,它是所有数据流类的基类

        

       如图,上面三红框是数据操作类:二进制(左上)、字节(左下)、字符文字(右边)


       注:Stream中:BufferedStream   以内存缓冲区为数据源,对数据存取

                                    FileStream            以文件内容为数据源,对数据存取

                                    MemoryStream    以内存为数据存取的来源

                                    NetworkStream    以连接网络为数据源,对数据存取

                                    CryptoSteam         对数据加解密



二、数据流为何叫流

        把数据(文件、字符串等)当作流动“物质”,以某种形式(二进制、字节、字符等),好像有次序地通过一个“管道”,到达另一目的地。


      尽管不同形式数据有不同的类、方法来操作,但是,真正可以连接底层数据源的,只有Steam类及其派生的子类;

      其它类(二进制、字符),都必须串接到数据流,以连接到底层的数据源,进行存取。

     






三、文件目录操作系统

      正如前面所说,有两类:通用与特定,它们都可新建、打开、删除、复制、移动目录和文件。

        

       通用类(左边):派生于基类Object,只提供共享方法成员,不针对特定文件和目录,故不需要创建特定的类对象,就可直接进行

                                       文件目录操作。

 

       特定类(右边):针对特定文件目录的对象,需要创建其类对象,以引用相关方法和属性来完成操作。







四、数据操作

      1、字节数据读写

            Stream类是这一组类的核心基类,其下派生几个重要数据流子类:

            

            注意:后面两种并不是System.IO空间。NetworkStream必须由连接网络端点的Socket对象返回其对象。

                                                                                  CryptoStream对象则是经过串接其它Stream类对象,新建其对象,然后加解密数据。



       2、字符数据读写

             主要由TextReader和TextWriter这两个类,提供字符组格式数据串流输入和输出功能。

             




        3、二进制数据读写

             主要由BinaryReader与BinaryWriter类来操作,提供对Boolean,整型、浮点型等基础数据类型的读写。

             基本数据如:

            





四、控制台I/O

       控制台是文字模式的IO。

       由于界面贫乏,故现很少用,主要用于例子演示。IO流程如下:

        


        例子:

         


        

  1. '控制台IO  
  2. Module Module1  
  3.   
  4.     Sub Main()  
  5.         Dim yName As String  
  6.         Try  
  7.             Console.WriteLine("输入你的名字:")  
  8.             yName = Console.ReadLine()  
  9.             Console.WriteLine("Hello," & yName & "!!!")  
  10.         Catch ex As Exception  
  11.             Console.WriteLine(ex.Message)  
  12.         End Try  
  13.         Console.ReadLine()  
  14.     End Sub  
  15.   
  16. End Module  

  1. Module Module1  
  2.     Sub Main()  
  3.         Dim s As String  
  4.         Dim intRead As Int32  
  5.   
  6.         Try  
  7.             Console.Write("请输入字符:")  
  8.             Do  
  9.                 intRead = Console.Read() '一次读一个字符(包括换行符)  
  10.                 s = ChrW(intRead)  
  11.                 Console.WriteLine(s)  
  12.             Loop While intRead <> -1  
  13.             Console.ReadLine()  
  14.         Catch ex As Exception  
  15.             Console.WriteLine(ex.Message)  
  16.         End Try  
  17.     End Sub  
  18. End Module  





五、IO异常处理。

        IOException是所有IO异常类的基类。

        同一般程序一样,可以用Try。。。。Catch。。。进行监控捕获。

       

      注:  EndOfStreamException是游标已到流的末尾,再次读时会异常。





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#入门教程
C#/.Net开发入门篇(3)——console类的输入输出
第八章java.io包
JavaIO——IO概述
创建文件或文件夹(C# 编程指南)
C#学习第九天
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服