Cómo obtener la extensión de un archivo en Java
-
Obtener la extensión del archivo usando el método
getExtension()
en Java -
Obtener la extensión de un archivo con el método
lastIndexOf()
en Java - Obtener la extensión de un archivo con el análisis de cadenas en Java
-
Obtener la extensión de un archivo usando el método
replaceAll()
en Java -
Obtener la extensión de un archivo usando el método
contains()
ylastIndexOf()
en Java - Obtener la extensión de un archivo usando los operadores externos en Java
-
Obtener la extensión de un archivo usando el método
stream()
en Java - Obtener la extensión de un archivo usando Regex en Java
Este tutorial introduce cómo obtener la extensión de un archivo en Java y también enumera algunos códigos de ejemplo para entender el tema.
Obtener la extensión del archivo usando el método getExtension()
en Java
Para obtener la extensión de un archivo, podemos usar el método getExtension()
de la clase FileenameUtils
. Este método devuelve la extensión del archivo. Como este método pertenece a la biblioteca común de Apache
, debes descargar la biblioteca del sitio oficial de Apache para usar JARs en tu proyecto.
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
Obtener la extensión de un archivo con el método lastIndexOf()
en Java
Si no quieres usar ningún método incorporado, entonces usa el ejemplo de código dado que usa el método lastIndexOf()
para obtener la extensión del archivo. Es la forma más simple y sencilla que involucra sólo métodos de cadenas. Vea el ejemplo a continuación.
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
Obtener la extensión de un archivo con el análisis de cadenas en Java
Esta es otra solución que incluye varios escenarios, incluyendo el que (si punto (.
) está en la ruta de los archivos). Este método devuelve el resultado exacto incluso si la ruta del archivo tiene un punto(.
) entre la ruta del archivo. Vea el ejemplo a continuación.
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
Obtener la extensión de un archivo usando el método replaceAll()
en Java
Podemos usar el método replaceAll()
para obtener la extensión del archivo como hicimos en el siguiente ejemplo. Utilizamos la expresión regular en este método y recogemos el resultado en una variable.
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
Obtener la extensión de un archivo usando el método contains()
y lastIndexOf()
en Java
El método contains()
se utiliza para comprobar si el carácter especificado está presente en la cadena o no y el método lastIndexOf()
devuelve un valor índice del carácter especificado que se pasa al método substring()
para obtener la extensión del archivo. Utilizamos estos métodos en este código para obtener la extensión del archivo. Vea el ejemplo a continuación.
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
Obtener la extensión de un archivo usando los operadores externos en Java
Si te sientes cómodo con los operadores ternarios(?, :
) entonces úsalo con el método substring()
y lastIndexOf()
. Reduce la línea de código y devuelve el resultado en una sola sentencia.
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
Obtener la extensión de un archivo usando el método stream()
en Java
Podemos usar el método stream()
de la clase Arrays
para convertir el nombre del archivo en stream()
y usar el método split()
para separar el nombre del archivo del punto (.
). Vea el ejemplo a continuación.
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
Obtener la extensión de un archivo usando Regex en Java
Esta es otra solución que utiliza el paquete regex
. El método compile()
y matcher()
de la clase Pattern
se usa para obtener la extensión del archivo en este ejemplo de Java. Mira el ejemplo a continuación.
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
Artículo relacionado - Java IO
- Agregar texto a un archivo de texto en Java
- Ruta relativa en Java
- Convertir InputStream en byte array en Java
- Convertir un InputStream en una cadena en Java
- Cómo leer todos los archivos de una carpeta en Java