Comment obtenir l'extension de fichier d'un fichier en Java

Mohammad Irfan 12 octobre 2023
  1. Obtenir l’extension de fichier en utilisant la méthode getExtension() en Java
  2. Obtenir l’extension d’un fichier avec la méthode lastIndexOf() en Java
  3. Obtenir l’extension d’un fichier avec l’analyse des chaînes de caractères en Java
  4. Obtenir l’extension de fichier d’un fichier en utilisant la méthode replaceAll() en Java
  5. Obtenir l’extension de fichier d’un fichier en utilisant la méthode contains() et lastIndexOf() en Java
  6. Obtenir l’extension de fichier d’un fichier en utilisant des opérateurs ternaires en Java
  7. Obtenir l’extension de fichier d’un fichier en utilisant la méthode stream() en Java
  8. Obtenir l’extension de fichier d’un fichier utilisant Regex en Java
Comment obtenir l'extension de fichier d'un fichier en Java

Ce tutoriel explique comment obtenir l’extension de fichier d’un fichier en Java et donne également quelques exemples de codes pour comprendre le sujet.

Obtenir l’extension de fichier en utilisant la méthode getExtension() en Java

Pour obtenir une extension d’un fichier, nous pouvons utiliser la méthode getExtension() de la classe FilenameUtils. Cette méthode retourne l’extension du fichier. Comme cette méthode appartient à la bibliothèque commune Apache, vous devez télécharger la bibliothèque depuis le site officiel d’Apache pour utiliser les JAR dans votre projet.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension d’un fichier avec la méthode lastIndexOf() en Java

Si vous ne voulez pas utiliser de méthode intégrée, utilisez l’exemple de code donné qui utilise la méthode lastIndexOf() pour obtenir l’extension du fichier. C’est le moyen le plus simple et le plus facile qui n’implique que des méthodes de type chaîne de caractères. Voir l’exemple ci-dessous.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension d’un fichier avec l’analyse des chaînes de caractères en Java

C’est une autre solution qui comprend plusieurs scénarios dont celui (si point(.) se trouve dans le chemin du fichier). Cette méthode retourne le résultat exact même si le chemin de fichier comporte un point (.) entre les deux. Voir l’exemple ci-dessous.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension de fichier d’un fichier en utilisant la méthode replaceAll() en Java

Nous pouvons utiliser la méthode replaceAll() pour obtenir l’extension de fichier comme nous l’avons fait dans l’exemple ci-dessous. Nous utilisons des expressions régulières dans cette méthode et nous collectons le résultat dans une 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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension de fichier d’un fichier en utilisant la méthode contains() et lastIndexOf() en Java

La méthode contains() est utilisée pour vérifier si le caractère spécifié est présent dans la chaîne ou non et la méthode lastIndexOf() retourne une valeur d’index du caractère spécifié qui est passée à la méthode substring() pour obtenir l’extension du fichier. Nous utilisons ces méthodes dans ce code pour obtenir l’extension du fichier. Voir l’exemple ci-dessous.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension de fichier d’un fichier en utilisant des opérateurs ternaires en Java

Si vous êtes à l’aise avec les opérateurs ternaires(?, :) alors utilisez-le avec la méthode substring() et lastIndexOf(). Elle réduit la ligne de code et retourne le résultat en une seule instruction.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension de fichier d’un fichier en utilisant la méthode stream() en Java

Nous pouvons utiliser la méthode stream() de la classe Arrays pour convertir le nom du fichier en stream et utiliser la méthode split() pour séparer le nom du fichier du point(.). Voir l’exemple ci-dessous.

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);
  }
}

Production:

File extension is : pdf

Obtenir l’extension de fichier d’un fichier utilisant Regex en Java

C’est une autre solution qui utilise le paquet regex. La méthode compile() et matcher() de la classe Pattern est utilisée pour récupérer l’extension du fichier dans cet exemple Java. Voir l’exemple ci-dessous.

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);
  }
}

Production:

File extension is : pdf

Article connexe - Java IO

Article connexe - Java File