ファイルとは
- 著者:YAMANJO
- 公開日:2008年7月9日
- 最終更新日:2024年11月25日
2進数であるデータは、ファイルという形式にまとまってはじめて利用することができるようになります。ファイルとは何か、ファイルにはどのような種類があるのか学習していきましょう。
ファイルとは何か
OSの役割について前章で学習しました。その主な役割のひとつにファイルの管理があります。
OSは「ファイルシステム」によって、ユーザーにファイルを管理・整理できる環境を提供しています。ファイルシステムの詳細はこれから詳しく学習していきますが、簡単に言えばフォルダによる階層的な管理の仕組みです。
ファイルやフォルダについて、聞いたことがないという方はいないと思います。パソコンを利用していると必ず扱うもので、フォルダに名前を付けて、その中にファイルを保存しているはずです。
しかし、具体的にファイルやフォルダがどのようなものか説明できるでしょうか?何となくイメージはあっても、その仕組みや定義を答えるとなると難しいものです。
ファイルの定義が重要だというわけではありません。重要なのは、ファイルとはどういうもので、どういう仕組みで管理されているのかを理解しておくことです。
なぜなら、
2進数のデータはファイルという形式になってはじめて扱うことができる
からです。
後述しますが、プログラムも「プログラムファイル」というファイルです。プログラムを含め、コンピュータが実際に扱うのは、1ビットや1バイトといった最小単位のデータではなく、ファイルという形式にまとまったデータになります。
そのファイルのサイズが何ビット、何バイトという単位で表現しているのです。(データサイズや単位については、デジタルデータの単位 を参照してください)
つまり、
コンピュータや人間が管理するためのデータの論理的な「まとまり」がファイル
と言えます。
データの実体は単なる0と1の並びです。それだけでは特定の意味も範囲の定義もありません。そこに意味や範囲を持たせている枠組みがファイルになるということです。
では、どのようにファイルという枠組みを付与するのかと言うと、それがまさしくファイルシステムになるのですが、OSのファイルシステムによって、データに「名前」「保存場所」「サイズ」「更新日時」などの情報(メタデータと言う)を付加します。これによって、単なるビット列がファイルとして扱えるようになります。
これまで、データ(命令)の集合体はプログラムであり、ソフトウェアであると学習してきました。先述のとおり、プログラムもプログラムファイルというファイルのひとつであり、学習に矛盾はありません。
ファイルとはプログラムよりも「広い意味」でのデータの集合体を指す用語になります。ソフトウェアもプログラムの集合体なので、様々なファイルの集合体と言うことができます。
そもそも、
パソコンはファイルになっていない素のデータ(2進数)は保存できない
というルールがあります。
したがって、パソコンに保存されているデータはすべてファイルです。そのファイルをOSが管理し、我々ユーザーはOSを通してファイルを操作、管理していることになります。
プログラムファイルとデータファイル
パソコンに保存されているデータがすべてファイルであるということは、写真や動画、WordやExcelなどのデータもすべてがファイルです。であれば、ファイルの種類は無数にあることになるでしょうか?
ある意味そういうことになるのですが、おおまかな分類は存在しています。
例えば、写真と動画であれば画像ファイルと動画ファイルという明かな違いがあり、画像ファイルの中にも種類はたくさんあります。その意味で、ファイルの種類は無数にあります。
しかし、ファイル全体を理解するために、もっと大きな視点で分類することができます。
プログラムファイルとデータファイル
すべてのファイルは、大きく分けてこの2つのどちらかに分類することができます。
プログラムファイルとは、これまで学習してきたプログラムのことです。このファイルを実行すると、プログラムが連動して様々な処理が開始されます。
そのため、プログラムファイルは「実行ファイル(実行可能ファイル)」と呼ばれることもあります。実行可能とは、自ら動いて処理が走り出すといった意味です。
基本的にWindowsのプログラムファイルは3種類しかありません。拡張子が「.exe」「.com」「.bat」の3種類です。(拡張子については、拡張子 の章で詳しく学習します)
したがって、この3種類以外のファイルはすべてデータファイルに分類されることになりますが、プログラムファイルに近いファイルも存在しており、はっきりと分類できるものではありません。
プログラムとソフトウェア の章で学習のとおり、ソフトウェアはプログラムと関連するデータの集合体でした。これを言い換えると、プログラムファイルと関連するデータファイルの集合体ということになります。
ただし、そのデータファイルの中には、ソフトウェアの動作を補助したり、設定を書き込んだファイルなど、プログラムファイルと密接に関係するファイルがあります。
具体的には「.dll」や「.ini」といったファイル形式になりますが、これらは「実行可能なファイル」ではないものの、広義のプログラムファイルに含める場合もあります。
先述のとおり、プログラムファイルは自ら起動して処理を実行するためのファイルになりますが、それ単体では処理が完結しないため、関係するデータファイルによって補っているということです。
少々難解なので、ここではプログラムファイルのうち一般的なファイル形式である「.exe」を知っておけば十分です。「エグゼ」と読み、ほとんどのアプリケーションソフトがこの形式です。インストール時や起動時にクリックするファイルになります。
下図は「Zoom」というソフトウェアの実行ファイルです。ほとんどの場合、実行ファイル(.exe)にそのソフトウェアのアイコンが表示されます。その他の多くのファイルは実行可能ファイルではありませんが、プログラムファイルに近いデータファイルになります。
一方、データファイルはプログラムファイル以外のすべてのファイルが対象です。
そのため、多岐にわたるファイルがありますが、代表的なものは、
ソフトウェアや機器によって作成されたファイル
になります。
例えば、Wordで作成した文書やExcelで作成したグラフ、デジカメやスマホで撮影した画像などがデータファイルです。
他にも、音楽などの音声ファイルや撮影した動画ファイル、住所録などのデータベースファイルなど、様々な機器やアプリケーションソフトで作成したファイルが該当し、プログラムやシステムが自動的に作成するログファイルや一時ファイルなども含まれます。
つまり、ほとんどのファイルがデータファイルになります。ではなぜ、このような分類が用いられるのかと言うと、プログラムファイルとそれ以外のファイルの役割の違いを明確にするためです。
もうおわかりのことと思いますが、こうした分類方法も多くの種類があります。これも、どのような分類があるのかが重要なのではありません。その分類による意味を理解しておくことが重要です。
プログラムファイルは、データファイルと取り扱いや管理方法が異なる場合が多く、また動作がまったく異なることを明確にして、特にユーザーに意識してもらう(注意してもらう)ための分類と言えます。
バイナリファイルとテキストファイル
次も、よく用いられる分類で分けてみましょう。
バイナリファイルとテキストファイル
です。
この分類もすべてのファイルがどちらかに分類されますが、同様にテキストファイルの特徴を明確にするための分類です。
バイナリとは「2進数」を意味し、テキストは「文字」を意味しています。
その意味のとおり、バイナリファイルは2進数からなるファイルで、テキストファイルは文字情報だけのファイルになります。なんとも、わかるようでわかりにくいファイル分類になっています。
前提としておさえておくことは、プログラムファイルであれデータファイルであれ、元をたどれば0と1の2進数だということです。これはどんなファイルにも共通する事実です。
そのため、
すべてのファイルはバイナリファイルに含まれる
ことになります。
つまり、テキストファイルもバイナリファイルに含まれるのです。ではなぜ分類するのかというと、テキストファイルだけ取り扱い方が異なるからです。
なぜなら、
テキストファイルは人間が直接編集することを目的としたファイル
だからです。
順を追って理解していきましょう。まず、テキストファイル以外のバイナリファイルを考えます。
通常、バイナリファイルは人間が直接編集することを目的としていません。そのため、特定のソフトウェアやコンピュータだけが処理できるようにまとめられています。
したがって、対象となるソフトウェアやコンピュータ以外は、そのバイナリ(2進数)が何を意味しているのか理解することができません。まして、人間にはとても理解不能です。
バイナリファイルは、コンピュータが効率的に保存・処理するためにバイナリデータをまとめたものです。要するに効率化を優先しており、処理が高速化したり、データサイズを小さくすることができます。例えば、画像や音声、動画ファイルは、バイナリ形式で保存されています。
一方、テキストファイルはバイナリファイルには変わりありませんが、一般的なバイナリ形式で保存されているわけではありません。人間が読めることを前提としているので、文字コードと呼ばれるコード体系に変換されて保存されます。
例えば、ASCII(アスキー)という文字コードでは「A」が「01000001」というバイナリの並びになっています。つまり、ひと手間加えたファイル形式っているのです。(文字コードについては、文字コードとは で詳しく学習します)
テキストファイルは「.txt」や「.csv」といった形式のファイルで、シンプルな文字情報だけのファイルになりますが、文字コードによるコード化(符号化という)処理を行っているため、バイナリファイルとして保存するよりもデータサイズが大きくなることが多いです。例えば、画像ファイルをテキスト形式で保存すると、通常の画像ファイルのサイズよりも大きくなります。
少し難しいですが、テキスト形式で保存するというのは、あえて画像をテキストファイル形式に変換するということです。中身の画像を文字に変換するという意味ではなく、ファイル形式を変えるという意味です。
例えば、テキスト形式で保存されている画像を「メモ帳」などのソフトウェアで表示できるわけではありません。この場合は、文字コードに基づく膨大で意味不明な文字列として表示されます。
実際にこうした画像などをテキスト形式に変換するのは、メールにファイルを添付する際に一般的に行われています。(詳しくは、電子メール編で学習します)
このように、テキストファイルは人間が直接編集できるように符号化という手間が加えられているのに対し、バイナリファイルはコンピュータだけがわかればよいので、コンピュータが効率的に処理・保存できる形式まとめられているということになります。
では、それが何を意味するのかと言うと、テキストファイルは、OSやソフトウェアなどの環境にあまり影響されずに扱うことができるという特徴を持ちます。
ルール上、何らかの文字コードに対応しているファイルなので、文字コードさえ特定できれば容易にバイナリを文字に置き換えることができます。例えば、テキスト専用のアプリケーションソフト(テキストエディタと言う)としては「メモ帳」が有名ですが、メモ帳以外のソフトウェアでも開くことができます。
つまり、OSやソフトウェアに関わらず、文字コードが正しく認識される限り、テキストファイルは広範囲な環境で問題なく利用できるという特長があります。
しかし、バイナリファイルはOSやソフトウェアなどの環境に大きく影響を受けます。OSが異なると取り扱えなかったり、特定のアプリケーションソフトでしか開けないといった弊害があります。
このような違いから、バイナリファイルとテキストファイルは区分されているのです。
テキストファイルの用途としては、システムやソフトウェアのログ(記録)、設定ファイル、住所録や数値データなどをアプリケーションソフト間でのやり取りするためのファイルとして利用するなどの用途があります。
以上で、ファイルの分類は終わりです。
補足ですが、Wordで作成した文書ファイルはテキストファイルではありません。Wordには文字の修飾やレイアウト情報などが含まれるため、純粋なテキストだけのファイルではないからです。純粋なテキスト情報だけのファイルを「プレーンテキスト」と言います。
テキストファイルは文字情報だけのシンプルなデータファイルですが、実際にはひと手間が加えられているため、バイナリファイルとして保存するよりもデータサイズが大きくなるというのは以外だったかもしれません。
いずれにしても、こうしてファイルとしてデータをまとめてやることで、私たちはそれを操作することができるようになります。では、いつデータをファイルという形式にまとめているのでしょうか?
それはもうおわかりのとおり、
保存
という作業を行ったときです。
WordやExcelで、下図のような「保存」という作業をしたことがあると思います。
先述のとおり、ファイルになっていない素のデータ(2進数)は保存できないルールがあるので、保存のときにファイルという形式にまとめて保存するというわけです。
更新履歴
- 2008年7月9日
- ページを公開。
- 2009年3月17日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2018年1月24日
- ページをSSL化によりHTTPSに対応。
- 2024年11月25日
- 内容修正。
著者プロフィール
YAMANJO(やまんじょ)
- 経歴
- 岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
- 医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
- 趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
- 関連リンク
- 詳細なプロフィールはこちら
- 作成したボカロ曲などはYoutubeへ
- X(Twitter)