Получение расширения файла в Java — программа с lastIndexOf

Программа на Java для получения расширения файла.

Для понимания этого примера нужно знать следующие темы Java:

  • Класс java.io.File

  • Метод String.lastIndexOf()

  • Метод String.substring()

Пример 1: получение расширения файла

import java.io.File;

class Main {

  public static void main(String[] args) {
    File file = new File("Test.java");

    // convert the file name into string
    String fileName = file.toString();

    int index = fileName.lastIndexOf('.');
    if(index > 0) {
      String extension = fileName.substring(index + 1);
      System.out.println("File extension is " + extension);
    }
  }
}

В примере выше:

  • file.toString() — преобразует объект File в строку.

  • fileName.lastIndexOf(„.“) — возвращает позицию последнего вхождения символа. Так как все расширения файлов начинаются с „.“, мы используем символ „.“.

  • fileName.substring() — возвращает строку после символа „.“.

Пример 2: получение расширения всех файлов в каталоге

Допустим, мы хотим получить расширения всех файлов в каталоге. Можно использовать описанный выше способ в цикле.

import java.io.File;

class Main {

  public static void main(String[] args) {
    File directory = new File("Directory");

    // list all files present in the directory
    File[] files = directory.listFiles();
    System.out.println("Files\t\t\tExtension");

    for(File file : files) {
      // convert the file name into string
      String fileName = file.toString();

      int index = fileName.lastIndexOf('.');
      if(index > 0) {
        String extension = fileName.substring(index + 1);
        System.out.println(fileName + "\t" + extension);
      }
    }
  }

}

Вывод:

Files                   Extension
Directory\file1.txt     txt
Directory\file2.svg     svg
Directory\file3.java    java
Directory\file4.py      py
Directory\file5.html    html

Примечание

Вывод программы зависит от используемого каталога и файлов внутри него.

Совет

Если вы используете библиотеку Guava, можно сразу использовать метод getFileExtension() для получения расширения. Например:

String fileName = "Test.java";
String extension = Files.getFileExtension(fileName);

А Apache Commons IO предоставляет класс FilenameUtils с методом getExtension для получения расширения файла.

String extension = FilenameUtils.getExtension("file.py") // returns py