第11回Javaゼミ 11.1 ファイルとディレクト リ 11.2 文字ストリーム 11.3 バッファ付き文字スト リーム 2006/06/28 神津 健太.

Slides:



Advertisements
Similar presentations
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
Advertisements

山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
プログラミング第5回 1 while ループ 文字列の操作
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
Javaにおける入出力とXML 2011年5月15日 海谷 治彦.
プログラミング基礎I(再) 山元進.
IO - 入出力 小西 亨.
JSFによるWebアプリケーション開発 第11回
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
独習Java ・ 12.1  インターネットアドレス ・ 12.2  サーバーソケットとソケット  12月 19日    小笠原 一恵.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
プログラミングIII演習 第1回目.
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
オブジェクト指向入門.
第12回独習Javaゼミ 12章セクション3~4 発表者 直江 宗紀.
アルゴリズムとデータ構造 2011年6月20日
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
~手続き指向からオブジェクト指向へ[Ⅱ]~
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
8.1 例外処理 8.2 catchブロックの検索 8.3 throwステートメント 8.4 例外とエラークラス 8.6 独自の例外
変数のスコープ クラス クラス変数 すべてのメソッドの外側でstaticで定義
ソフトウェア工学 知能情報学部 新田直也.
JAVA入門.
サブゼミ第9回 実装編③ 永続化とjava.ioパッケージ.
類似するコーディングパターンの 利用状況調査ツールの提案
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
例外処理 と ファイル入出力 情報システム学科 平塚 聖敏.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
安全なモバイルエージェント システム Flyingware のための 仮想ディスクの実現
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
リファレンスの復習と例外処理 2005年6月14日 海谷 治彦.
リファレンス,配列,例外処理 その他演習に役立つこと
総合政策学部4年 伊藤玲子 総合政策学部4年 阿部雅美 +CreWな皆様
暗号技術 ~JAVAプログラム③~ (7週目)
第3回 2007年4月27日 応用Java (Java/XML).
第6回 2007年6月1日 応用Java (Java/XML).
暗号技術 ~JAVAプログラム①~ (5週目)
Collection, Generics, Iterator
アルゴリズムとデータ構造演習(7月8日) 入出力ストリーム 2019/1/18.
画像処理プログラムの説明.
第1回 プログラムの基本 他人が読めるプログラムを書く.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
独習Javaゼミ第10回 セクション1~3 発表者 直江 宗紀.
ソフトウェア制作論 平成30年11月21日.
第4回 ファイル入出力方法.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
プログラミング演習I 2003年7月2日(第11回) 木村巌.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
暗号技術 ~JAVAプログラム②~ (6週目)
dcNavi:デバッグ支援のための グラフベース推薦システム
JAVA入門⑥ クラスとインスタンス.
アルゴリズムとデータ構造 2012年6月21日
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

第11回Javaゼミ 11.1 ファイルとディレクト リ 11.2 文字ストリーム 11.3 バッファ付き文字スト リーム 2006/06/28 神津 健太

11.1 ファイルとディレクトリ (1) File クラス ファイルまたはディレクトリのプロパティに関する情報をカプセル化。 プロパティには、読み取り及び書き込み許可、前回の修正時刻、および長さが含ま れる。 新しいディレクトリの作成、既存のファイルとディレクトリの削除、名前の変更な どができる。 File コンストラクタ File(String path) File(String directoryPath, String filename) File(File directory, String filename) 1つ目の形式は、ファイルまたはディレクトリのパスを指定。 2つ目の形式は、ディレクトリのパスと、そのディレクトリ内のファイル名。 3つ目の形式は、ディレクトリの File オブジェクトと、そのディレクトリ内のファイ ル名。 どのコンストラクタも path または filename が null の場合は NullPointException を投げる。

11.1 ファイルとディレクトリ (2) File クラス また、2つの char 定数、 eparatorChar と patheparatorChar が定義される 。 separatorChar ファイル名の中でディレクトリとファイルを区切る文字 pathseparatorChar パスリスト内で構成要素を区切る文字 File クラスのインスタンスメソッド boolean canRead() ファイルが存在し、読み取り可能なら真、可能でないなら偽を 返す boolean canWrite() ファイルが存在し、書き込み可能なら真、可能でないなら偽を 返す boolean createNewFile() 空の新規ファイルを作成。正しく作成されれば真、できなけれ ば偽 boolean delete() ファイルを削除。正しく削除されれば真、できなければ偽 ディレクトリは空でなければ削除できない String getAbsolutePath() ファイルの絶対パスを返す String getCanonicalPath() ファイルの標準パスを返す String getName() ファイルの名前を返す String getParent() ファイルの親を返す String getPath() ファイルのパスを返す

11.1 ファイルとディレクトリ (3) import java.io.*; class FileDemo{ public static void main(String args[]){ try{ System.out.println("pathSeparatorChar = " + File.pathSeparatorChar); System.out.println("SeparatorChar = " + File.SeparatorChar); File file = new File(args[0]); System.out.println("getName() = " + file.getName()); System.out.println("getPath() = " + file.getPath()); System.out.println("canRead() = " + file.canRead()); System.out.println("canWrite() = " + file.canWrite()); } catch(Exception e){ e.printStackTrace(); } >java FileDemo c:\tyj\examples\io\FileDemo.java pathSeparatorChar = ; SeparatorChar = \ getName() = FileDemo.java getPath() = c:\tyj\examples\io\FileDemo.java canRead() = true canWrite() = true File のメソッドを使用した例

11.2 文字ストリーム(1) ストリーム データのソース(源流)またはデスティネーション(宛先)の抽象的な概念のこと。 文字ストリームとバイトストリームの2つのタイプがある。 バイトストリーム バイナリデータの読み取りおよび書き込みを行うことができる。 文字ストリーム 文字および文字列のデータの読み取りおよび書き込みを行うことができる。 入力文字ストリームはバイトを文字に変換し、出力文字ストリームは文字をバイト に変換。 Java.io パッケージで提供される文字ストリーム Object PrintWriter InputStreamReader BufferedReader Reader WriterFileWriter FileReader BufferedWriter InputStreamWriter

11.2 文字ストリーム(2) Writer クラス すべての文字出力ストリームで利用できる機能が定義される。 Writer コンストラクタ Writer() Writer(Object obj) 1つ目の形式は、 Write オブジェクトに基づいて同期化を行う。 2つ目の形式は、 obj に基づいて同期化を行う。 Write クラスのインスタンスメソッド Abstract void close() 出力ストリームをクローズする(サブクラスで実装しなければ ならない) throws IOException void write(int c) ストリームに c の下位 16 ビットを書き込む throws IOException void write(String s) ストリームに s を書き込む throws IOException

11.2 文字ストリーム(3) OutputStreamWriter クラス Writer を拡張したクラス。文字のストリームをバイトのストリームに変換 する。 OutputStreamWriter コンストラクタ OutputStreamWriter(OutputStream os) OutputStreamWriter(OutputStream os, String encoding) os は出力ストリーム、 encoding は文字エンコーディングの名前。 1つ目の形式は、ユーザーマシンの既定の文字エンコーディングを使用する。 OutputStreamWriter のメソッド String getEncoding() 文字エンコーディングの名前を返す

11.2 文字ストリーム(4) FileWriter クラス OutputStreamWriter を拡張したクラス。ファイルに文字を出力する。 FileWriter コンストラクタ FileWriter(String filepath) throws IOException FileWriter(String filepath, boolean append) throws IOException FileWriter(File fileObj) throws IOException FileWriter(File fileObj, boolean append) throws IOException filepath はファイルの完全パス名、 fileObj はファイルを表す File オブジェクト。 append が真の場合は、文字はファイルの終わりに付加され、 偽の場合は、ファイルの既存のコンテンツを上書きする。

11.2 文字ストリーム(5) Reader クラス すべての文字入力ストリームで利用できる機能が定義される。 Reader クラスのインスタンスメソッド Abstract void close() 入力ストリームをクローズする さらに読み取りをすると IOException throws IOException (サブクラスで実装しなければならない) void mark(int numChars) numChars 文字が読み取られるまで有効である入力ストリー throws IOException ムの現行の位置にマークをつける Boolean markSupported()mark() / reset() がこのストリームでサポートされている場合、真を 返す int read() throws IOException ストリームから文字を読み取る データが利用可能になるまで待 機する boolean ready() 次の read() が待機していない場合、真を返す throws IOException void reset() throws IOException 入力ポインタを、事前に設定されているマークにリセットする int skip(long numChars) 入力のうちの numChars バイトを飛ばし、実際に飛ばした文字数を 返す throws IOException

11.2 文字ストリーム(6) InputStreamReader クラス Reader を拡張したクラス。バイトのストリームを文字のストリームに変換 する。 InputStreamReader コンストラクタ InputStreamReader(InputStream is) InputStreamReader(InputStream is, String encoding) is は入力ストリーム、 encoding は文字エンコーディングの名前。 1つ目の形式は、ユーザーマシンの既定の文字エンコーディングを使用する。 InputStreamReader のメソッド String getEncoding() 文字エンコーディングの名前を返す

11.2 文字ストリーム(7) FileReader クラス InputStreamReader を拡張したクラス。ファイルから文字を入力する。 FileReader コンストラクタ FileReader(String filepath) throws FileNotFoundException FileReader(File fileObj) throws FileNotFoundException filepath はファイルの完全パス名、 fileObj はファイルを表す File オブジェクト。 どちらもファイルが見つからない場合は FileNotFoundException を投げる。

import java.io.*; class FileWriterDemo{ public static void main(String args[]){ try{ FileWriter fw = new FileWriter(args[0]); for(int i=0;i<12;i++){ fw.write("Line " + i + "\n"); } fw.close(); } catch(Exception e){ System.out.println("Exception: " + e); } ファイル作成プログラムとファイル読み取りプログラムの例 import java.io.*; class FileReaderDemo{ public static void main(String args[]){ try{ FileReader fr = new FileReader(args[0]); int i; while((i = fr.read()) != -1){ System.out.print((char)i); } fr.close(); } catch(Exception e){ System.out.println("Exception: " + e); } >java FileWriterDemo output.txt >java FileReaderDemo output.txt Line 0 Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11 11.2 文字ストリーム(8)

11.3 バッファ付き文字ストリー ム(1) BufferedWriter クラス Writer を拡張したクラス。文字ストリームへの出力をバッファに入れる。 BufferedWriter コンストラクタ BufferedWriter(Writer w) BufferedWriter(Writer w, int bufSize) 1つ目の形式は、既定サイズのバッファを使用してバッファ付きストリームを作成す る。 2つ目の形式は、バッファのサイズを bufSize で指定する。 BufferedWriter のメソッド void newLine() throws IOException 改行文字を出力する

BufferedReader クラス Reader を拡張したクラス。文字ストリームからの入力をバッファに入れる。 BufferedReader コンストラクタ BufferedReader(Reader r) BufferedReader(Reader r, int bufSize) 1つ目の形式は、既定サイズのバッファを使用してバッファ付きストリームを作成す る。 2つ目の形式は、バッファのサイズを bufSize で指定する。 BufferedReader のメソッド String readLine() throws IOException 文字ストリームから 改行終端文字列を読み取る 11.3 バッファ付き文字ストリー ム(2)

11.3 バッファ付き文字ストリー ム(3) import java.io.*; class BufferedWriterDemo{ public static void main(String args[]){ try{ FileWriter fw = new FileWriter(args[0]); BufferedWriter bw = new BufferedWriter(fw); for(int i=0;i<12;i++){ bw.write("Line " + i + "\n"); } bw.close(); } catch(Exception e){ System.out.println("Exception: " + e); } バッファ付き文字ストリームを用いたファイル作成プログラムとファイル読み取りプロ グラムの例 import java.io.*; class BufferedReaderDemo{ public static void main(String args[]){ try{ FileReader fr = new FileReader(args[0]); BufferedReader br = new BufferedReader(fr); String s; while((s = br.readLine()) != null){ System.out.println(s); } fr.close(); } catch(Exception e){ System.out.println("Exception: " + e); } >java FileWriterDemo output.txt >java FileReaderDemo output.txt Line 0 Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 Line 11

練習問題 1. >Java SampleWrite output.txt 上記のように実行すると 「ガウス分布に従う乱数のサンプル、10000個のデータを持つ output.txt というファイル を作成する」 といったプログラムを作成せよ。 また、 output.txt の1行目にはサンプル数を書き込むようにする。 2行目以降から、1行ごとにデータの値1つが書き込まれるようにする。 2.作成したデータ output.txt を読み込んでサンプル数、平均、分散を表示させるプログラムを作 成せよ。 実行例 >Java SampleRead output.txt サンプル数: 平均: 分散: 3.英文のテキストファイルを読み取り、母音のアルファベット( a,i,u,e,o )が何回出現したかを 計算するプログラムを作成せよ。大文字・小文字の区別はしなくてよい。