java.ioは入出力処理についてのライブラリ。
大きく分けて以下の3つがある。
1. バイトストリーム系(InputStream、OutputStream)
2. 文字ストリーム系(Reader、Writer)
3. ファイル操作系(File)
java.io
├── InputStream
│ ├── FileInputStream
│ ├── BufferedInputStream
│ ├── DataInputStream
│ └── ObjectInputStream
│
├── OutputStream
│ ├── FileOutputStream
│ ├── BufferedOutputStream
│ ├── DataOutputStream
│ └── ObjectOutputStream
│
├── Reader
│ ├── FileReader
│ ├── BufferedReader
│ ├── InputStreamReader
│ └── StringReader
│
├── Writer
│ ├── FileWriter
│ ├── BufferedWriter
│ ├── OutputStreamWriter
│ └── PrintWriter
│
└── File
javaプログラムはメモリ上で動いているため、テキストファイル(ディスクに保存されている)などに出力する時は「メモリ⇔ディスク」の書き込み、読み込みが必要。
その書き込みや読み込みを助けてくれるライブラリ。
文字ストリームでテキストファイルを出力する流れ
・javaプログラム
"こんにちは"
↓
・文字ストリームで指定された文字コードでバイトに変換
E3 81 93・・・・(UTF8で変換)
↓
・バイトストリームでバイト列をディスクに書き出し
test.txt
E3 81 93・・・・