Como obter a extensão de um arquivo em Java
-
Obter a extensão de arquivo utilizando o método
getExtension()
em Java -
Obtenha a extensão de um arquivo com o
lastIndexOf()
Método em Java - Obter a extensão de um arquivo com String Parsing em Java
-
Obter a extensão de um arquivo utilizando o método
replaceAll()
em Java -
Obter a extensão de um arquivo utilizando
contains()
elastIndexOf()
Método em Java -
Obter a extensão de um arquivo utilizando
ternary operators
em Java -
Obter a extensão de um arquivo utilizando o método
stream()
em Java - Obter a extensão de um arquivo utilizando Regex 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
- Anexar texto a um arquivo de texto em Java
- Caminho Relativo em Java
- Converter Inputstream para Byte Array em Java
- Converter um InputStream em uma string em Java
- Como ler todos os arquivos de uma pasta em Java