PowerPoint プレゼンテーション

アルゴリズムとデータ構
造演習(7月8日)
入出力ストリーム
2015/9/30
1
入出力ストリーム
ユーザープログラム
様々なデータ型に対応
ストリームクラス
様々なハードウェアに対応
入出力装置
2015/9/30
2
ストリームのクラス

Reader

BufferedReader
LineNumberReader
CharArrayReader
 InputStreamReader

FileReader

FilterReader
PushbackReader
PipedReader
 StringReader

2015/9/30
3
入出力ストリームの使用方法
try {BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(“Test.txt”)));
String str = in.readLine();
} catch (IOException ioe) {
System.err.println(e.toString());}
try {BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(“Test.txt”)));
out.write(str);
} catch (IOException ioe) {
System.err.println(e.toString());}
} finally {
out.close();
}
2015/9/30
4
標準入出力(1)

IOTestのコンソール出力
テスト1:標準入力からバッファに読み込み、「!」+Enterで終了する。
この後に入力してください。>Java2
入力内容:Java2
この後に入力してください。>!
入力内容:!
テスト2:ファイルtest2.txtからバッファに読み込む。
ファイルの内容:JAVA2より ”おはよう!”
テスト3:バッファの内容をファイルtest3.txtに書き込む。
ファイルが存在しない時、ファイルを自動的に生成する。
テスト4:ファイルtest3.txtに追加の書き込みをする。
テスト5:ランダムアクセスファイルtest4.txtを使用する。
2015/9/30
5
標準入出力(2)

IOTestの出力ファイル
test2.txt:
JAVA2より ”おはよう!”
test3.txt:
おはようございます。Good Morning!
test4.txt
GOOD MORNING!GOOD MORNING!
2015/9/30
6
ランダムアクセス(1)
try {
RandomAccessFile in = new RandomAccessFile(“Test.txt”, “r”);
int n = (int)(in.length() / atom.RECORD_SIZE);
atom[] a = new atom[n];
for (i=0; i<n; i++) {
a[i] = new atom();
in.seek(i*atom.RECORD_SIZE); a[i].readAtom(in);
}
for (i=0; i<atm.length; i++) {
a[i].print();
}
} catch (IOException ioe) {
System.err.println(e.toString());}
}
2015/9/30
7
ランダムアクセス(2)

PeriodicLawのコンソール出力
元素名:金
元素名:銀
元素名:銅
元素名:鉄
元素名:鉛
2015/9/30
英語名:Gold
英語名:Silver
英語名:Copper
英語名:Iron
英語名:Lead
記号:Au 原子記号:79
記号:Ag 原子記号:47
記号:Cu 原子記号:29
記号:Fe 原子記号:26
記号:Pb 原子記号:82
原子量:196.9
原子量:107.8
原子量:63.5
原子量:55.8
原子量:207.2
8
トークナイザー(1)
StringTokenizer t = new StringTokenizer(s, "|");
jname = t.nextToken();
…
atomicNumber = Integer.parseInt(t.nextToken());
atomicWeight =
Double.parseDouble(t.nextToken());
2015/9/30
9
トークナイザー(2)

PeriodicLaw1の出力ファイル
atom1.txt
5
金|Gold|Au|79|196.9
銀|Silver|Ag|47|107.8
銅|Copper|Cu|29|63.5
鉄|Iron|Fe|26|55.8
鉛|Lead|Pb|82|207.2
2015/9/30
10