- ベストアンサー
Fileクラス
いろいろ調べてみたんですがよくわからないので教えてください。 File d = new File("."); String[] f= d.list(); のようにして”・”カレントディレクトリの ファイル名が取得できます。f[]の配列の中身がファイル名になります。 そこで、カレントディレクトリの、ある特定の拡張子のものだけ取り出せないかと、 File d = new File(".\\*.java"); (ここでは.javaのもの) としたのですが、 java.lang.NullPointerException のエラーがでてしまいます。 どのようにしたら、 *.java のような特定の拡張子のファイル取得が出来ますでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
あるサイトから昔パクったものですが、 File d = new File("."); // FilenameFileter は無名インナクラス String[] f = d.list(new FilenameFilter() { public boolean accept(File d, String name) { return (name.endsWith(".java")); } }); でどうでしょう? #あ、サイトが見つかった。→参考URL参照
その他の回答 (1)
- lawson
- ベストアンサー率44% (29/65)
解決方法としては No1さんが示してくれていますが。 結局、Fileクラスのコンストラクタは 実行時に唯一1つのファイルまたは、ディレクトリ が特定できなければ nullを返却するのじゃないでしょうか? File d = new File(".\\*.java"); は 以下に示す2つの理由のどちらかで nullを返却して そのnullに対して、listメソッドを 発行しようとした結果 java.lang.NullPointerException になったかもしれません。 理由1 「*.java」という名前を持つファイルが存在しない とおもわれてしまった。 理由2 *.javaの意味自体は解釈したが、 それでは1つのファイルまたは、ディレクトリ に特定できないと判断されてしまった。 以上
お礼
ありがとうございました。 一度締め切ります。 わからなかったらまた質問させてください_(._.)_
補足
取り急ぎありがとうございます。 endsWithと言うメソッドを使うのですね。 一度試してみて、お礼いたします。