Files allow programs to store and retrieve data permanently. There are three standard streams in C - standard input, output, and error. Files are accessed sequentially to process the data in order, or randomly to access records in any order. Functions like fopen(), fclose(), fprintf(), fscanf() allow opening, closing, reading from and writing to files. File streams have buffers associated with them for efficient reading and writing of data to disk in blocks.