java.io パッケージ
このパッケージは入出力やファイルを取り扱うためのクラスを提供します。
JDK1.0 でも存在したパッケージで、その基本的な役割に変化はありません。
ただし、JDK1.1 では「オブジェクトの転送」という新しい機能に関係する
クラスとインターフェイスが追加されています。
また、JDK1.1 では国際化に伴うマルチバイト入出力への対応と
従来の InputStream, OutputStream を使ったアプリケーション
の両立を図るために、Reader, Writerというクラス(およびそれらのサブクラス)
が新たに導入されました。このせいで、クラスの個数は約2倍にふくれあがって
います。
クラスの一覧
- InputStream とそのサブクラス
- InputStream
- ByteArrayInputStream
- BufferedInputStream
- DataInputStream
- StringBufferInputStream
- FilterInputStream
- PipedInputStream
- FileInputStream
- LineNumberInputStream
- SequenceInputStream
- PushbackInputStream
- ObjectInputStream
- Reader とそのサブクラス
- Reader
- CharArrayReader
- BufferedReader
- StringReader
- FilterReader
- PipedReader
- FileReader
- LineNumberReader
- PushbackReader
InputStream のサブクラスに ByteArrayInputStream が、
Reader のサブクラスに CharArrayReader が存在します。
- OutputStream とそのサブクラス
- OutputStream
- PrintStream
- ByteArrayOutputStream
- BufferedOutputStream
- DataOutputStream
- FilterOutputStream
- PipedOutputStream
- FileOutputStream
- ObjectOutputStream
- WriterStream とそのサブクラス
- Writer
- PrintWriter
- CharArrayWriter
- BufferedWriter
- StringWriter
- FilterWriter
- PipedWriter
- FileWriter
OutputStream のサブクラスに ByteArrayOutputStream が、
Writer のサブクラスに CharArrayWriter が存在します。
PrintWriter は Writer のサブクラスで、PrintStream と同じように
print(),println() のメソッドを提供します。
バイトストリームとキャラクタストリームとの変換を行うクラス
- InputStreamReader
- OutputStreamWriter
- ByteToCharConverter
- CharToByteConverter
ByteTOCharConverter() と CharToByteConveter は、
システムで使用されているコード(たとえば SJIS や EUC)と
Java内部で用いられる Unicode との変換の機能を提供します。
システムごとのコードの違いを表面に現れないようにすることも可能になっています。
その他のクラス
- File
- FileDescriptor
- RandomAccessFile
- StreamTokenizer
- ObjectStreamClass
File と FileDescriptor はファイルおよびファイル・システムへのインターフェイス
を提供します。ディレクトリの作成や情報取得は File クラスのオブジェクトを
通じて行われます。
RandomAccessFileはランダム・アクセスを行うための機能を提供するクラスです。
(File のサブクラスではない。)
StreamTokenizer はストリームをトークンに分解する機能を提供するクラスです。
ObjectStreamClass は、バーチャルマシン間で転送されたオブジェクトを
取り扱うためのクラスです。
インターフェイスの一覧
- DataInput
- DataOutput
- FilenameFilter
- Externalizable
- Serializable
- ObjectInput
- ObjectInputValidation
- ObjectOutput
後半の5つのインターフェイスは 1.1から新たに追加されたものです。
いずれも「オブジェクト転送」の機構を実装する際に用いられます。