Prog1_11th

Similar documents
Prog2_10th

Prog1_15th

Prog1_13th

Prog1_10th

Prog1_6th

Prog2_9th

Prog1_3rd

Prog1_2nd

Prog1_12th

オブジェクト指向プログラミング・同演習 5月21日演習課題

2006年10月5日(木)実施

JavaプログラミングⅠ

GEC-Java

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

データ構造とアルゴリズム論

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Microsoft Word - java a.doc

Microsoft PowerPoint - OOP.pptx

デジタル表現論・第6回

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

JavaプログラミングⅠ

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

プログラミングA

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1


データ構造とアルゴリズム論

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

GEC-Java

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

JavaプログラミングⅠ

K227 Java 2

Microsoft PowerPoint - prog13.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog13.ppt

File IO

スライド 1

2

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

2

デジタル表現論・第4回

データ構造とアルゴリズム論

応用プログラミング 2004/11/23 データの入出力 データの入出力データをキーボードからコンピュータに入力することや CRT に表示すること, さらにハードディスク (HDD) や MO などに保存されているファイルからデータをコンピュータに読み込むことや ( 逆に ) データをこれらの装置に

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

例外処理とファイル入出力

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog03.ppt

メソッドのまとめ

Programming-C-9.key

Prog1_10th

Java言語 第1回

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Java講座

データ構造とアルゴリズム論

JavaプログラミングⅠ

文字列操作と正規表現

PowerPoint Presentation

PowerPoint Presentation

ファイル入出力Ⅱ

Prog2_12th

プログラミング基礎I(再)

Java 入門 4 Java 入門 4 - ファイルを読む Version 1.01 Kyosuke Yanai Copyright(c) 2010 Kyosuke Yanai

ファイル入出力Ⅰ

2

JavaプログラミングⅠ

2

プログラミング入門1

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

プログラムの基本構成

JavaプログラミングⅠ

問題1 以下に示すプログラムは、次の処理をするプログラムである

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

PowerPoint プレゼンテーション

JavaプログラミングⅠ

プログラミング入門1

情報処理演習 B8クラス

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft Word - Cプログラミング演習(9)

Microsoft Word - CompA-Ex doc

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

目次 - 基本編 - 1. はじめに ( なぜプログラミング?) 2. 超基礎 ( やりながら確認 ) 3. データ構造とアルゴリズム 4. 計算量について - 実用編 - 1. 平均 分散 2. 和と差 3.OD 表の作成 4. メソッド +α. オブジェクト指向

Microsoft PowerPoint - 第3回目.ppt [互換モード]

ファイル操作-バイナリファイル

そして 取得した OutputStream インスタンスを使い 文字コードは UTF-8 として PrintWriter インスタンスを生成して あとは PrintWriter.append() で書き込みたい文字 列を渡して close() で保存する というだけです ファイルの読込み方法 それで

Javaプログラムの実行手順

プログラミング入門1

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

スライド 1

プログラミング入門1

情報実習Ⅱ

Transcription:

2018 年 6 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル (File) とは, データの集合体のことで,JIS( 日本工業規格 ) では, ファイルはレコードの集合体, レコードはデータの集合体と定義されている ファイル操作は, 次の順序で行う なお, ストリームとは, 入力元または出力先を持つ, 順序付けられたデータ列である 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている ここでは, テキストファイルから文字を読み込むための簡易クラス FileReader, テキストファイルに文字を書き込むための簡易クラス FileWriter の使い方を中心に学ぶ ディレクトリ操作ディレクトリ (Directory) とはファイルの管理簿で, 階層構造を持つ Java 言語でディレクトリ操作を行うには, ファイルおよびディレクトリのパス名の抽象表現を表すクラス File を用いる パス名には絶対パス名 ( ルートディレクトリ [ 階層の先頭 ] から辿ったパス名 ) または相対パス名 ( カレント [Current; 現在作業中の ] ディレクトリから辿ったパス名 ) を用いる 例題 1( ファイルからの読み込み ) 次のプログラムは, ファイルから 1 行ずつ, カンマ区切りの文字列を読み込み, それを分解して各項目を表示するものである これを入力, ビルドして, 実行せよ なお, これを実行する前に ダウンロードしたファイル "in.csv" を workspace の Prog1のフォルダにコピーしておく必要がある ここで, クラス名はSample11_1, ソースファイル名は Sample11_1.javaとする - 1 -

import java.io.bufferedreader; import java.io.filenotfoundexception; import java.io.filereader; import java.io.ioexception; public class Sample11_1 { // TODO 自動生成されたメソッド スタブ String fname = "in.csv"; try { BufferedReader br = new BufferedReader(new FileReader(fname)); String iline = null; while ((iline = br.readline())!= null) { String[] str =iline.split(","); System.out.println(str[0]+":"+"\t データ 1="+str[1]+ "\t データ 2="+str[2]); br.close(); catch (FileNotFoundException fe) { System.out.println(fname +" というファイルが開けません "); catch (IOException err) { System.out.println("IOException をキャッチ "+err); 解説 1.FileReaderクラスのインスタンスが生成されるとストリームが開かれる 2.BufferedReader クラスは, 文字, 配列, 行をバッファリングすることによって, 文字型入力ストリームからテキストを効率良く読み込むためのものである クラスの階層は次の通りである java.lang.object java.io.reader java.io.bufferedreader ( は上位を拡張) 3.readLineはテキスト行を読み込むメソッドである 4.while 文の継続条件を満たさなくなるのはファイルの終わりに達した時である 5.split(",") メソッドは文字列を "," に一致する位置で分割する 6.closeメソッドはストリームを閉じる際に用いる 7. 例外クラスFileNotFoundException は, 指定されたパス名で示されるファイルが開けなかった例外を通知する 8. 例外クラスIOException は, 入出力処理の失敗, または割り込みの発生によって生成される例外に対応する - 2 -

例題 2( ファイルへの書き込み ) 次のプログラムは, ファイルへ 1 行ずつ, カンマ区切りの文字列を書き込むものである これを入力, ビルドして, 実行せよ ここで, クラス名は Sample11_2, ソースファイル名は Sample11_2.java とする import java.io.bufferedwriter; import java.io.filenotfoundexception; import java.io.filewriter; import java.io.ioexception; import java.io.printwriter; import java.util.scanner; public class Sample11_2 { // TODO 自動生成されたメソッド スタブ final int NUM = 5; int po; String na; Scanner sc = new Scanner(System.in); String fname = "out.csv"; try { PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(fname))); for (int i=0; i<num; i++) { System.out.println((i+1)+" 人目の "); System.out.print(" 氏名を入力してください :"); na = sc.next(); System.out.print(" 点数を入力してください :"); po = sc.nextint(); pw.printf("%s,%d%n", na, po); pw.close(); catch (FileNotFoundException fe) { System.out.println(fname +" というファイルが開けません "); catch (IOException err) { System.out.println("IOException をキャッチ "+err); 解説 1.BufferedWriter クラスは, 文字をバッファリングすることによって, 文字, 配列または文字列を効率良く文字型出力ストリームに書き込むために用いる 2.PrintWriter クラスは, オブジェクトの書式付き表現をテキスト出力ストリームに出力する際に用いる そのインスタンスに対して,printf メソッドは書式付きの書き込みを行う - 3 -

例題 3( ディレクトリの表示 ) 次のプログラムは, ディレクトリのパス名を与えると, その内容を表示するものである これを入力し, ビルドして, 実行せよ ここで, クラス名は Sample11_3, ソースファイル名は Sample11_3.java とする なお, 実行は次の様に 2 回行う [1 回目の実行 ] そのまま実行する [2 回目の実行 ] Eclipse では, 実行 実行構成 引数 プログラムの引数 と辿り, テキストエリア内に jimbo (jimbo の箇所は自分の名前に置き換える ) を入力して実行する import java.io.file; public class Sample11_3 { if (args.length!= 1) { System.out.println(" 利用法 :java Sample11_3 パス名 "); System.exit(1); String dname = args[0]; File directory = new File(dname); String[] dlist = directory.list(); for (int i=0; i<dlist.length; i++) { System.out.println(dlist[i]); 解説 1.main メソッドの引数 args は String 型の配列を参照するが, その配列の要素にはプログラム実行時に与えられたコマンドライン引数 ( プログラム名引数 1 引数 2 ) が順に格納される なお,args[0] には, 最初のコマンドライン引数 ( 引数 1) が格納される 2.File クラスのインスタンスに対して,list メソッドは抽象パス名が示すディレクトリにあるファイル及びディレクトリを示す文字列の配列を返す 抽象パス名がディレクトリを示さない場合, このメソッドは null を返す ディレクトリを示す場合は, 文字列の配列が返される なお, 結果の配列の名前文字列は特定の順序にはならない 3.length 属性は配列の要素数を返す 演習次のプログラムリストの空欄 1) ~3) に適切な語句を埋めたプログラムを作成し, ビルドして実行せよ ここで, プログラムのクラス名は Ex11, ソースプログラム名は Ex11.java とする なお, このプログラムは,10 個の整数データが各行に記述された入力用のファイル input.txt を開き, そこから読み込んだデータをソートした結果を, 出力用のファイル output.txt を開いて - 4 -

書き込むものである なお, 実行は次の様に 2 回行う [1 回目の実行 ] そのまま実行する [2 回目の実行 ] Eclipse では,workspace の直下の Prog1( プロジェクト名のディレクトリ ) にダウンロードした input.txtを配置して実行する import java.io.bufferedreader; import java.io.bufferedwriter; import java.io.filenotfoundexception; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; import java.io.printwriter; public class Ex11 { // TODO 自動生成されたメソッド スタブ final int NUM = 10; int[] x = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0; String fin = "input.txt"; String fout = "output.txt"; try { BufferedReader br = new BufferedReader(new FileReader(fin)); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(fout))); String iline = null; for (int i=0; i<num; i++) { iline = br.1) (); x[i] = Integer.parseInt( 2) ); sort(x); for (int i=0; i<num; i++) { 3).println(x[i]); pw.close(); br.close(); catch (FileNotFoundException fe) { System.out.println("input.txt というファイルが開けません "); catch (IOException err) { System.out.println("IOException をキャッチ "+err); catch (NumberFormatException exnf) { System.out.println(" 整数でないものが含まれています "); private static void sort(int[] a){ for(int i=0; i<a.length-1; i++) for(int j=i+1; j<a.length; j++) - 5 -

if(a[j]>a[i]){ int temp = a[i]; a[i] = a[j]; a[j]=temp; 提出物 : 1) 例題 1 及び例題 3 の出力結果をコピーして貼り付けたテキストファイル res11.txt をメールに添付する 2) 例題 2で出力されたファイル out.csv をメールに添付する 3) 演習で空欄を埋めたソースプログラムのファイル Ex11.java をメールに添付する 4) 演習で出力されたファイル output.txt をメールに添付する 5) 第 10 回の授業の復習の内容を埋めたファイル Review_10th.txt をメールに添付する * メールの件名は プログラミング 1 第 11 回課題 ( 鍵括弧は要らない ) とする - 6 -