「標準入出力とファイル入出力」(pdf)

ネットワークプログラミング
標準入出力とファイル入出力
Sep.15, 2009
プログラムによるデータの入出力
データの流れ
画面表示
ネットワーク入出力
演算・処理
プログラム
(データ = 変数)
キー入力
ファイル入出力
入出力以前(メモリ内部)
プログラム内部
プログラム内部
演算・代入
データ:値
準備: 特に無し
演算・処理
プログラムでの表現
int x = 123;
a = b * c;
プログラム
(データ = 変数)
標準入出力
プログラムと画面・キーボード
データ:文字
準備: 特に無し
標準入出力
System.out.print()
System.out.write()
標準出力
br.readline()
System.in.read()
プログラム
(データ = 変数)
標準入力
バッファリングのあり/
バッファリングのあり/なし
バッファリングあり
入力(一行分を入力)
バッファつきリーダ名.readLine()
出力(一行分を出力)
System.out.print("文字列") または println("文字列")
標準出力
"tsunoda"
"tsunoda"
標準入力
「ひとかたまり」で転送
プログラム
(データ = 変数)
バッファリングのあり/
バッファリングのあり/なし
バッファリングなし
入力(一行分を入力)
System.in.read(配列)
出力(指定数の文字を出力)
System.out.write(配列, 開始位置, 個数)
標準出力
't' 's' 'u' 'n' 'o' 'd' 'a'
'a' 'd' 'o' 'n' 'u' 's' 't'
標準入力
「ばらばら」に転送
プログラム
(データ = 変数)
ファイル入出力
プログラムとハードディスク
ファイル入出力
データ:文字、バイナリ
準備: ストリーム
FileOutputStream fout = new FileOutputStream("ファイル名");
fout.write(データ);
プログラム
(データ = 変数)
ファイル
FileInputStream fin = new FileInputStream("ファイル名");
fin.read();
ファイルへの出力
ステップ1: ストリームの準備
ファイル名を指定して、データの通るパイプ(スト
リーム)を準備
ファイルがなければ作る
上書きか追加かも指定
プログラム
(データ = 変数)
ファイル
(ファイル名)
FileOutputStream fout = new FileOutputStream("ファイル名")
ステップ2: データ出力
パイプ(ストリーム)を通してデータを出力
プログラム
(データ = 変数)
ファイル
(ファイル名)
fout.write(データ)
ステップ3: ストリームの後始末
使い終わったパイプ(ストリーム)をクローズ
新規の場合、クローズした
段階でファイルができる
プログラム
(データ = 変数)
ファイル
(ファイル名)
fout.close()
ファイルからの入力
ステップ1: ストリームの準備
ファイル名を指定して、データの通るパイプ(スト
リーム)を準備
プログラム
(データ = 変数)
ファイル
(ファイル名)
FileInputStream fin = new FileInputStream("ファイル名")
ステップ2: データ入力
パイプ(ストリーム)を通してデータを出力
プログラム
(データ = 変数)
ファイル
(ファイル名)
fin.read()
ステップ3: ストリームの後始末
使い終わったパイプ(ストリーム)をクローズ
プログラム
(データ = 変数)
ファイル
(ファイル名)
fin.close()