Como obter a extensão de um arquivo em Java

Mohammad Irfan 12 outubro 2023
  1. Obter a extensão de arquivo utilizando o método getExtension() em Java
  2. Obtenha a extensão de um arquivo com o lastIndexOf() Método em Java
  3. Obter a extensão de um arquivo com String Parsing em Java
  4. Obter a extensão de um arquivo utilizando o método replaceAll() em Java
  5. Obter a extensão de um arquivo utilizando contains() e lastIndexOf() Método em Java
  6. Obter a extensão de um arquivo utilizando ternary operators em Java
  7. Obter a extensão de um arquivo utilizando o método stream() em Java
  8. Obter a extensão de um arquivo utilizando Regex em Java
Como obter a extensão de um arquivo em Java

Este tutorial introduz como obter a extensão de um arquivo em Java e também lista alguns exemplos de códigos para entender o tópico.

Obter a extensão de arquivo utilizando o método getExtension() em Java

Para obter uma extensão de um arquivo, podemos utilizar o método getExtension() da classe FilenameUtils. Este método retorna a extensão do arquivo. Como este método pertence à biblioteca Apache commons, você deve baixar a biblioteca do site oficial do Apache para utilizar os JARs em seu projeto.

import org.apache.commons.io.FilenameUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "student-records.pdf";
    String fe = FilenameUtils.getExtension(fileName);
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obtenha a extensão de um arquivo com o lastIndexOf() Método em Java

Se você não quiser utilizar nenhum método embutido, então utilize o exemplo de código dado que utiliza o lastIndexOf() método para obter a extensão do arquivo. É a maneira mais simples e fácil que envolve apenas métodos de string. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "student-records.pdf";
    String fe = "";
    int i = fileName.lastIndexOf('.');
    if (i > 0) {
      fe = fileName.substring(i + 1);
    }
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo com String Parsing em Java

Esta é outra solução que inclui vários cenários, incluindo aquele (se dot(.) estiver no caminho do arquivo). Este método retorna o resultado preciso mesmo que o caminho do arquivo tenha um ponto(.) no meio do caminho do arquivo. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    char ch;
    int len;
    if (fileName == null || (len = fileName.length()) == 0 || (ch = fileName.charAt(len - 1)) == '/'
        || ch == '\\' || ch == '.') {
      fe = "";
    }
    int dotInd = fileName.lastIndexOf('.'),
        sepInd = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));
    if (dotInd <= sepInd) {
      fe = "";
    } else {
      fe = fileName.substring(dotInd + 1).toLowerCase();
    }
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo utilizando o método replaceAll() em Java

Podemos utilizar o método replaceAll() para obter a extensão do arquivo, como fizemos no exemplo abaixo. Utilizamos expressão regular neste método e coletamos o resultado em uma variável.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    fe = fileName.replaceAll("^.*\\.(.*)$", "$1");
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo utilizando contains() e lastIndexOf() Método em Java

O método contains() é utilizado para verificar se o char especificado está ou não presente na string e o método lastIndexOf() retorna um valor de índice do char especificado que é passado para o método substring() para obter extensão de arquivo. Utilizamos estes métodos neste código para obter a extensão do arquivo. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains("."))
      fe = fileName.substring(fileName.lastIndexOf(".") + 1);
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo utilizando ternary operators em Java

Se você estiver confortável com operadores ternários(?, :) então utilize com o método substring() e lastIndexOf(). Ele reduz a linha de código e retorna o resultado em uma única declaração.

public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains(".")) {
      int i = fileName.lastIndexOf('.');
      fe = i > 0 ? fileName.substring(i + 1) : "";
    }
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo utilizando o método stream() em Java

Podemos utilizar stream() método da classe Arrays para converter o nome do arquivo em stream e utilizar split() método para quebrar o nome do arquivo a partir do ponto(.). Veja o exemplo abaixo.

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    if (fileName.contains(".")) {
      fe = Arrays.stream(fileName.split("\\.")).reduce((a, b) -> b).orElse(null);
    }
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Obter a extensão de um arquivo utilizando Regex em Java

Esta é outra solução que utiliza o pacote regex. O método compile() and matcher() da classe Pattern é utilizado para buscar a extensão do arquivo neste exemplo Java. Veja o exemplo abaixo.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SimpleTesting {
  public static void main(String[] args) {
    String fileName = "folder\s.gr\fg\student-records.pdf";
    String fe = "";
    final Pattern PATTERN = Pattern.compile("(.*)\\.(.*)");
    Matcher m = PATTERN.matcher(fileName);
    if (m.find()) {
      fe = m.group(2);
    }
    System.out.println("File extension is : " + fe);
  }
}

Resultado:

File extension is : pdf

Artigo relacionado - Java IO

Artigo relacionado - Java File