基本的な入出力機能のためのクラスです。オブジェクトはエンコーディングを持ちます。エンコーディングの影響を受けるメソッドと受けないメソッドがあります。エンコーディングに従い読み込まれた文字列のエンコーディングが決定されます。エンコーディングを適切に設定することにより、読み込み時・書き込み時に文字列のエンコーディングを変換させることもできます。読み込みメソッドは2種類存在します。テキスト読み込みメソッドとバイナリ読み込みメソッドです。エンコーディングの影響をうけます。エンコーディングとエンコーディングの変換」を参照して下さい。以下がテキスト読み込みメソッドです。エンコーディングの影響を受けません。以下がバイナリ読み込みメソッドです。エンコーディングの影響を受けます。エンコーディングの影響を受けます。シーク関連のメソッドはエンコーディングの影響を受けません。常に1バイトを単位として動作します。オブジェクトは外部エンコーディングと内部エンコーディングを持ちます。表すファイルなどの文字エンコーディングです。書き込みメソッドへ渡す文字列の文字エンコーディングです。以下の三通りがあります。このとき実際の文字エンコーディングは検査されず、変換もされません。テキスト読み込みメソッドによって読み込まれた文字列のエンコーディングは外部エンコーディングに設定されます。このとき実際の文字エンコーディングは検査されず、変換もされません。書き込まれる文字列は外部エンコーディングへと変換されます。外部エンコーディングへの変換方法が分からない場合は例外が発生します。default_internal)へと変換されます。指定された文字エンコーディングと実際の文字エンコーディングが違っていた場合、例外が発生します。両方とも指定されている場合は、内部エンコーディングが優先されます。書き込まれる文字列は外部エンコーディングへと変換されます。外部エンコーディングへの変換方法が分からない場合は例外が発生します。使って指定するものの二通りがあります。詳しくはそれぞれのメソッドの項を参照して下さい。通常は前者の方法を使います。エンコーディングがSJISへ変換されていることが分かる。まとめ以上をまとめると以下の表のようになります。常に設定されているので、省略してあります。指定されなかった場合は次のような優先順位で決定されます。localeファイル名のエンコーディングファイル名の文字エンコーディングはプラットフォームに依存します。Mac)では、エンコーディングは暗黙に変換されます(予定)。変換されずそのままシステムコールに渡されます。返すファイル名のエンコーディングも同様にプラットフォーム依存です。テキストモードとバイナリモードという2種類のモードが存在します。エンコーディングとは独立です。改行の変換にしか影響しません。各読み込みメソッドの振る舞いは以下のとおりです。