イントロダクション
前回は、作成したコードを整理整頓しました。前回のものはまだまだ初歩的なものなので創意工夫でより良いコードをかけるようにやって見てください。
注意する単語
- ディレクトリ:フォルダのこと
- カレントディレクトリ:コマンドプロンプトでの現在のディレクトリを示す。
- ファイルシステム:テキストファイルなどのファイルやフォルダツリーをまとめた呼び方
Linuxでの「lsコマンド」とWindowsでの「dir」コマンドは同じようなコマンドです。
<コマンドの解説>
Dirコマンド
コマンドプロンプトを叩いたことがある人は馴染みのコマンドだと思います。ちなみにリナックスやMacの場合は「ls」コマンドで同じことができます。
単純に現在開いているディレクトリ(カレントディレクトリ)にあるファイル(フォルダ)を表示するコマンドです。
JavaでDirコマンド
Javaでコマンドをそのまま実行することができます。
Rumtime.exec()
を使用することで可能ですが、今回はJavaプログラムで同じようなことをやって見ます。
Fileクラス
このクラスを使用してディレクトリにあるファイルの一覧を表示する処理を実装します。
/** * Dirコマンドの処理を実装 */ public void dirCommand() { File dir = new File("."); String[] files = dir.list(); for (int i = 0; i < files.length; i++) { System.out.println(files[i]); } }
こんな感じで実装すると、ビルドパス上の(Eclipseでの実装は設定の関係でプロジェクト直下がカレントディレクトリになります。
その実行結果はこんな感じです。
そして、今回作成したコードはGitにアップしてあります。
コマンドの処理部分は割愛しますが、Fileクラスを使用した実装部分について記載します。
Fileクラス
このクラスはファイルやディレクトリを表現するクラスです。実装したコードは上のようなものですが、1行ずつ内容を記載すると以下のようになります。
File dir = new File(".");
現在のディレクトリ(カレントディレクトリ)を示す"."を引数に渡してインスタンス化
String[] files = dir.list();
list()メソッドで対象のディレクトリにあるファイル(ディレクトリ)の一覧を取得します。
for (int i = 0; i < files.length; i++) { System.out.println(files[i]); }
あとはループで表示するだけです、ちなみに指定するディレクトリにより取得するデータ(ファイルなど)の数が違うのでループ文で処理を行っています。
## Fileクラスの例
Fileクラスというとファイルの中身に何かしらを書き込むとか読み込むなどの処理をイメージすると思います。
今までのは。「ファイルシステム」でディレクトリツリーの参照を主軸にしていましたが、ファイルの操作も行うことができます。
以下はサンプル動画です。
<BufferedReaderクラスでファイルを読み込む>
<BufferedWriterクラスでファイルに書き込む>
でわでわ。。。
<<< [前回](https://zenryokuservice.com/wp/2019/07/29/java-mid-basic-%e3%80%9clv2_3_java%e3%81%ae%e5%9f%ba%e6%9c%ac%e3%83%aa%e3%83%95%e3%82%a1%e3%82%af%e3%82%bf%e3%83%aa%e3%83%b3%e3%82%b0%e5%ae%9f%e8%b7%b5%e3%82%b2%e3%83%bc%e3%83%a0%e3%83%ab%e3%83%bc/) [次回](https://zenryokuservice.com/wp/2019/08/06/java-mid-basic-%e3%80%9clv2_5_java%e3%81%ae%e5%9f%ba%e6%9c%ac%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e5%b1%a5%e6%ad%b4%e3%82%92%e4%bd%9c%e3%82%8b%e3%82%b2%e3%83%bc%e3%83%a0%e3%83%ab%e3%83%bc%e3%83%97/) >>>