アルゴリズムとデータ構 造演習(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
© Copyright 2024 ExpyDoc