In computer science, a record-oriented filesystem is a file system where data is stored as collections of records. This is in contrast to a byte-oriented filesystem, where the data is treated as an unformatted stream of bytes. There are several different possible record formats; the details vary depending on the particular system. In general the formats can be fixed-length or variable length, with different physical organizations or padding mechanisms; metadata may be associated with the file records to define the record length, or the data may be part of the record. Different methods to access records may be provided, for example sequential, by key or by record number.
Record-oriented filesystems are frequently associated with mainframe and midrange operating systems, such as MVS,DOS/VSE or VMS.
Record-oriented filesystems can be supported on media other than direct access devices. A deck of punched cards can be considered a record-oriented file. A magnetic tape is an example of a media that can support records of uniform length or variable length.
In a record file system, a programmer designs the records that may be used in a file. All application programs accessing the file, whether adding, reading, or updating records share an understanding of the design of the records. In MVS there is no restriction on the bit patterns composing the data record, i.e. there is no delimiter character; this is not true of all systems, e.g., RCA File Control Processor (FCP) on the 301, 501, 601 and 3301.
The file comes into existence when a file create request is issued to the filesystem. Some information about the file may be included with the create request. This information may specify that the file has fixed-length records (all records are the same size) along with the size of the records. Alternatively, specification may state that the records are of variable length, along with the maximum record length. Additional information, including blocking factor, binary vs. text, maximum number of records may be specified.
It is permitted to read only the beginning of a record; the next sequential read returns the next collection of data (record) that the writer intended to be grouped together. It may also permitted to write only the beginning of a record. In these cases, the record is padded with binary zeros or with spaces, depending on whether the file is recognized as a binary file or a text file.