ファイルフォーマット

**ファイルフォーマット**（、**ファイル形式**）は情報をファイルへ収納する形式である。

## 概要
コンピュータにおいてメディア（文書、音声、画像、動画）やプログラムはファイルとして保存される。統一された順序・構造でこれらの情報がファイルとして保存されていれば、オペレーティングシステム (OS) やアプリケーションは一貫した方法でファイルにアクセスし情報を利用できる。これを可能にする、ファイルへの情報格納規格がファイルフォーマット（ファイル形式）である。

通常「ファイルフォーマット」と呼ばれるが、DOSやMicrosoft Windows、UNIX、Unix系などのOSにおけるファイルはストリーミングデータ（データストリーム）形式であり、正確には「各ファイルに格納されたデータのフォーマット」の事である。

通常ファイルに格納されたデータは、テキストまたはバイナリファイルなので、ファイルの内容だけからはそのファイルフォーマットを知ることが困難な場合がある。このため、ファイル名に拡張子をつけて識別したり、ネットワークでの転送時にはMIMEヘッダ（メディアタイプ）等をあわせて送ったり、といった方法が採られる。このようなメタデータを付与する方法はファイルの内容自体に影響を与えず、またファイルを開くことなく種別を判定できる、という利点がある。しかし、拡張子は簡単に、しかも自由に編集できるため、信頼性は極めて低い。またMIMEタイプはIANAによって正式に登録・標準化されていない独自の文字列をアプリケーションやシステムが勝手に付与することもありうる。そのため、多くのファイルフォーマットは、ファイルの先頭に**[[マジックナンバー (フォーマット識別子)|マジックナンバー]]**と呼ばれる、より確実にファイル形式を識別するための情報を付加する。

さまざまなアプリケーションで扱える標準的なフォーマットもあるが、OSやアプリケーションによりそのデータ形式は様々である。特定のアプリケーションで扱えるデータ形式に変換するためのファイルコンバータを利用できることがある。

## データの区切りの単位に注目した分類
* bit（ビット）をデータの区切りの単位とするデータ。例：圧縮されたデータ
* byte（バイト、1byte = 8bit）を単位とするデータ。例：各種アプリケーションのデータファイル
* 文字を単位とするデータ。例：テキストファイル
** 特定の文字に意味を持たせ構造化したデータ。例：CSV、マークアップ言語（HTML、XMLなど）

テキストもバイナリの一種であるが、実際のビット列はエンコーディング時に採用する文字セットに左右される。テキストのデータストリームをデコードする際のヒントとして、ファイル先頭付近にバイト順マークや文字セット名を記載するフォーマットもある。

各種プログラミング言語のソースファイルも、構造化されたプレーンテキストファイルの一種である。

## 汎用性に注目した分類
;標準化されたフォーマット
: 国際的な機関で制定されたフォーマット。ファイルフォーマットの例としては、JPEG、MPEGなどがある。標準化機関の例としては、国際標準化機構 (ISO)、日本産業規格 (JIS)、World Wide Web Consortium (W3C) などがある。
;事実上、業界標準となっているフォーマット
: 後述する「特定のOSやアプリケーションに依存するフォーマット」に含まれるが、広く使用され事実上標準（デファクトスタンダード）となっているもの。例としては、GIFやFBX、PDF（米アドビ、後にISO標準化）などがある。
;特定のOSやアプリケーションに依存するフォーマット
: 各種OSやアプリケーションのデータファイル。例としては、BMP、RTF（Microsoft Windows）など多数ある。

## よく知られたファイルフォーマット一覧

### テキスト、ハイパーテキスト、ドキュメント
* プレーンテキスト
* RTF (Rich Text Format)
* HTML (HyperText Markup Language)
* XHTML (Extensible HyperText Markup Language)
* MHTML (MIME Encapsulation of Aggregate HTML Documents)
* 
* PDF (Portable Document Format)
* DjVu
* DVI (DeVice Independent)
* CSV (Comma-Separated Values)
#### オフィススイート 用のフォーマット
主なオフィススイート用のフォーマットには以下がある。
*Lotus 1-2-3
** 123、wk3、wk4 など
*一太郎
** jtd （一太郎 V8 以降）
* Microsoft Officeの独自フォーマット
**doc（Microsoft Wordの独自フォーマットの拡張子）
**xls（Microsoft Excelの独自フォーマットの拡張子）
**ppt（Microsoft PowerPointの独自フォーマットの拡張子）
* Office Open XML（Microsoft Office 2007で新たに採用された文書フォーマット）
**Office Open XML Document（文書用）
**Office Open XML Workbook（表計算用）
**Office Open XML Presentation（プレゼンテーション用）
* OpenDocument
**OpenDocument Text（文書用）
**OpenDocument Spreadsheet（表計算用）
**OpenDocument Presentation（プレゼンテーション用）
**OpenDocument Database（データベース用）
**OpenDocument Formula（数式用）
*Uniform Office Format

### データ記述フォーマット
* Adobe Illustrator (AI)
* Adobe Photoshop (PSD)
* CSS
* CSV
* PDF
* PostScript
* SGML
* TOML
* XML
** RDF
** RSS

### 画像・図形

### 3D
* Standard Triangulated Language (STL)
* Wavefront .objファイル (OBJ)
* PLY (ファイル形式) (PLY)
* Additive Manufacturing File Format (AMF)
* 3MF (3MF)
* X3D (X3D)

#### ラスターイメージ

* BMP (Windowsビットマップ)
* DPX
* 
* GIF
* HD Photo
* JPEG
* JPEG 2000
* JPEG XR
* MAG
* OpenEXR
* PICT
* PNG
* RAW画像
** DNG
* TGA
* TIFF
** XBM (X11ビットマップ)

#### ベクターイメージ

* DXF
* EPS
* HP-GL
* SVG
* Windows Metafile

### 音声

* MP3 (MPEG-1 Audio Layer-3)
* mp3PRO
* AAC (Advanced Audio Coding)
* ALAC (Apple Lossless Audio Codec)
* WAV (RIFF Waveform Audio Format)
* WMA (Windows Media Audio)
* AIFF (Audio Interchange File Format)
* AU
* Ogg Vorbis
* RealAudio
* FLAC (Free Lossless Audio Codec)
* Monkey's Audio

### 楽曲
* Standard MIDI File (SMF)
* EUP (EUPHONY) - FM TOWNS標準の楽曲フォーマット
* MML (Music Macro Language)
* SMAF (Synthetic music Mobile Application Format)

### 動画

* AVI (Audio Video Interleave)
* ASF (Advanced Systems Format)
* FLV (Flash Video)
* OGM (Ogg Media)
* OGG (Ogg file)
* MPEG (Moving Picture Experts Group)
** MPEG-1
** MPEG-2
** MPEG-4
* MP4 (MPEG-4 Part 14)
* MOV (QuickTime Movie)
* RealVideo
* VG2
* DivX (DivX Media Format)

### 時間軸を持つもの
* アニメーションGIF
* MNG (Multiple-image Network Graphics)
* SWF (Macromedia Shockwave Flash)
* SMIL (Synchronized Multimedia Integration Language)

### ファイルアーカイブ（圧縮など）
* 7z
* ACE
* AFA
* bzip2
* DGCA (Digital G Codec Archiver)
* CAB
* tar
* GCA (G Compression Archiver)
* gzip
* LHA (LZH) / LHarc
* RAR
* ZIP
* StuffIt
* Compact Pro

### オブジェクトファイル

* EXEフォーマット
** Portable Executable
* COMフォーマット
* a.out
* ELF (Executable and Linkable Format)
* PEF (Preferred Executable Format)
* Mach-O
* S-record
* dyld

### 通信関連
*MACフレーム
*PPPフレーム
*HDLCフレーム
*パケット
**IPパケット
***TCPパケット
****HTTPパケット

### その他
* EDIF (Electronic Design Interchange Format) - 電子設計データ

## ファイルフォーマットと関連づけ

特定のファイルフォーマットと、それを開くアプリケーションソフトウェアを登録しておき、操作を行いたいファイルを選択した際にアプリケーションソフトウェアを選ぶ手間を省くための動作を**関連づけ** (association) という。関連づける手法はOSなどの環境により異なる。例えばWindowsやOS/2では拡張子によって対応するアプリケーションを選択する（Windowsではレジストリに登録する。OS/2ではWPSの.INIファイルに情報が格納される）。

Mac OSでは、ファイルのメタデータとしてクリエータとタイプというデータがある。ファイルシステムのHFSとHFS+、ファイル転送プロトコルのAFPではこれらは保持されるが、FTP、HTTP、電子メール等を介してファイルをやりとりする場合は、クリエータとタイプを保持するフォーマット（Macバイナリ、AppleSingle、AppleDouble、BinHex等）に変換するか、Mac OS用のアーカイブフォーマット（StuffIt、MacLHA等）を用いる必要がある。
macOSではクリエータとタイプがあればそれを優先するが、なければ拡張子による対応づけが利用される。

## 脚注

## 関連項目
* データ
* データ変換
* データ圧縮
* オープンフォーマット
* 電子データ交換

## 外部リンク
*CCfA.info
*DotWhat?
*FileTypes
*Manpage of SUFFIXES - LinuxのManpageの日本語訳