當使用標准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
每當一個程序運行時,會自動為我們打開三個流,分別是: