当使用标准C++编程时,我们已开始接触到两个主要的I/O"工具":标准C头文件cstdio和标准C++中与流相关的头文件iostream,如果加上Windows的话,那么还有Win32库和MFC库,另外,还有CLI/.NET。本文将要探讨的,就是C++/CLI中的输入与输出。
简介
日常,我们与文件或设备进行通讯的逻辑通道,称为流。数据可以8位字节或16位Unicode字符形式进行读写,而两者都有其自己的类集;另外,还有用于在字节与字符之间转换的类。其中,字符流通过Stream类及其的派生类实现;字符流通过TextReader与TextWriter类及其的派生类实现。
在图1中演示了标准I/O的类继承关系。(带有System命名空间前缀的类与I/O无关,但其却是I/O类的基类。)
图1:标准I/O类继承关系
System::Object
System::Attribute
System::ComponentModel::MemberAttribute
System::ComponentModel::DescriptionAttribute
IODescriptionAttribute
System::ComponentModel::Component
FileSystemWatcher
System::Delegate
FileSystemEventHandler
RenamedEventHandler
System::EventArgs
FileSystemEventArgs
RenamedEventArgs
System::Exception
IOException
DirectoryNotFoundException
EndOfStreamException
FileNotFoundException
PathTooLongException
System::SystemException
InternalBufferOverflowException
BinaryReader
BinaryWriter
FileSystemEntry
Directory
File
Stream
BufferedStream
FileStream
MemoryStream
TextReader
StreamReader
StringReader
TextWriter
StreamWriter
StringWriter
System::ValueType
System::Enum
ChangedFilters
FileAccess
FileMode
FileShare
FileSystemAttributes
SeekOrigin
WatcherChangeTypes
WatcherTarget
WaitForChangedResult
每当一个程序运行时,会自动为我们打开三个流,分别是: