A container and reader of data from a file or standard input.
The FileData struct is used to read data from a file or standard input. It is used by passing a filename to the constructor. The constructor reads the file data. If the filename is a single hyphen ('-') then data is read from standard input.
The struct make the data available through two members: 'filename', which is the filename, and 'data', which is a character array of the data.