Получение расширения файла в 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