LoginSignup
66
67

More than 5 years have passed since last update.

[Java]ストリームとは何か?

Last updated at Posted at 2014-03-06

自分用のまとめ
間違いあればご指摘いただけると嬉しいです!

Stream

データを"バイト単位で" read, writeできる物
バイト単位以外の読み書きは不可能
JavaではStreamというクラスはない。
後述のInputStreamとOutputStreamに分かれている。

InputStream

readのみできるstream

OutputStream

writeのみできるstream

ストリームで何を読み書きするのか?

プログラミングにおいて読み書きするものなら何でもストリームで!
ファイル、キーボード入力、ソケット、配列など

バッファリングとは?

1バイトずつ読み書きしていると入出力の処理が多くなりすぎてパフォーマンス悪い
→一定たまるまでメモリに貯めて、一定たまったらOSに読み書き命令を出す
→これがバッファリング

一定貯まる前でも強制的に書き込みをするのはflush()というメソッド。

バッファリングを実装した物

  • BufferedInputStream
  • BufferedOutputStream

読み書きが便利になるクラス

バイト単位では面倒な時のために文字単位で読み書きするクラスがある

バイトと文字の違い

  • バイト:0x00~0xFFのみ
  • 文字(2バイト): 0x0000〜0xFFFF

Reader

ストリームからバイトではなく"文字単位"で読む物

Writer

ストリームからバイトではなく"文字単位"で書き込む物

BufferedReader

Readerにバッファリングをつけたもの

BufferedWriter

Writerにバッファリングをつけたもの

66
67
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
67