Um arquivo, qualquer arquivo, é apenas uma coleção de bytes. Nada mais.
Para usar esses bytes, os programas precisam entender o que eles significam e, portanto, um formato de arquivo é uma maneira específica de organizar os bytes e / ou codificar os dados de tal forma que os programas que pretende interagir com o arquivo pode entendê-lo.
Muitos formatos de arquivo têm especificações que documentam como os arquivos são codificados, permitindo que vários programas interajam facilmente e / ou criem arquivos desse tipo.
Mas, qualquer um pode criar um novo formato de arquivo, eu mesmo fiz isso em algumas ocasionais para atribuições de programação da Universidade. Simplesmente decidindo como seus dados serão organizados em uma única seqüência de bytes, de modo que seu programa possa reler os dados corretos posteriormente.