JavaでFile名からextension(拡張子)を取得することができます。
File名で拡張子を取得する
以下のようにファイル名の最後にある .
を探して、そのあとの文字列を拡張子と考えることができます。
File file = new File("/home/js/test/myfile/file1.txt");
String fileName = file.getName();
String ext = fileName.substring(fileName.lastIndexOf(".") + 1);
System.out.println("file name : " + fileName);
System.out.println("extension : " + ext);
結果
file name : file1.txt
extension : txt
Streamを利用した方法
OptionalとStreamを利用して、拡張子を取得することもできます。
次のコードは、拡張子を持って来て Optional<String>
で返される例です。
File file = new File("/home/js/test/myfile/file1.txt");
String fileName = file.getName();
Optional<String> ext = getExtensionByStringHandling(fileName);
ext.ifPresent(s -> System.out.println("extension : " + s));
public static Optional<String> getExtensionByStringHandling(String filename) {
return Optional.ofNullable(filename)
.filter(f -> f.contains("."))
.map(f -> f.substring(filename.lastIndexOf(".") + 1));
}
ファイルがフォルダである場合、拡張子はありません。このような場合、Optionalはnullを持ちます。
file1.txt
よう拡張子がある場合、OptionalはStringを持ちます。
Commons-ioライブラリを利用して、拡張子を取得する
Commons-ioライブラリの FilenameUtils.getExtension()
を利用すれば、簡単に拡張子を入手することができます。
Commons-ioを使用するには、Gradleプロジェクトの場合 build.gradle
のdependenciesに次のように追加します。
dependencies {
compile group: 'commons-io', name: 'commons-io', version: '2.6'
...
}
Mavenなどの他のビルドシステムを使用するプロジェクトは、mvnrepository.comを参考にして設定するとします。
次の例では、FilenameUtilsに拡張子を取得するコードです。
System.out.println();
File file = new File("/home/js/test/myfile/file1.txt");
String fileName = file.getName();
String ext = FilenameUtils.getExtension(fileName);
System.out.println("extension : " + ext);
フォルダのように拡張子がない場合は、nullではないempty string( ""
)を返します。
参考
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法