今日はここから。
おさらい
Type | Interface | Buffered | Format |
---|---|---|---|
Byte Streams 8bit bytes |
InputStream OutputStream |
BufferedInputStream BufferedOutputStream |
PrintStream |
Character Streams 16bit characters |
Reader Writer |
BufferedReader BufferedWriter |
PrintWriter |
- Scanner使えば区切り文字とかで読み込むことができる。
I/O from the Command Line
2通りある。
Standard Stream
- System.in, System.out, System.err
- 歴史的な理由によりCharacter StreamsではなくByte Streams。つまりPrintStream。
- PrintStreamはByte StreamsだけどCharacterが扱えるようにエミュレートしてるよ。
- System.inはCharacter Stream的な機能はないよ。使いたかったらInputStreamReaderでラッピングしてね。
Console
- Consoleってクラスあるよ。System.console()で取得できるよ。使えない時はnullが返されるよ。
- こいつはCharacter Streamsだよ。つまりreader/writerね。
- パスワード扱うのに便利だよ(readPassword)
- エコーしない
- char[]で返すから文字列と違って使い終わったら上書きできるよ
上書きできる、のところが一瞬???ってなったけど。そっか。
Arrays.fill(newPassword1, ' ');
Data Streams
DataOuput / DataInput インターフェイス。
まぁ今のところ使わなさそうだな。
double,float,int,long,boolean,Stringを読み書きできるStream。
小数値をfloat/doubleで扱うからお金とか扱うなら使えないよ!って書いてある。
EOFのときはEOFExceptionが投げられるよ。
Object Streams
これも直接使うことはなさそうだなー。
こっちはBigDecimal使えるんだぜ(どや!
てことで、I/O Streamsはおしまーい。Byte StreamsとCharacter Streamsがちゃんと理解できてよかった!
来週はNIO.2だなー。