Ottieni l'estensione di un file in Java

Mohammad Irfan 12 ottobre 2023
  1. Ottieni l’estensione del file usando il metodo getExtension() in Java
  2. Ottieni l’estensione di un file con il metodo lastIndexOf() in Java
  3. Ottieni l’estensione di un file con analisi di stringhe in Java
  4. Ottieni l’estensione di un file usando il metodo replaceAll() in Java
  5. Ottieni l’estensione di un file usando i metodi contains() e lastIndexOf() in Java
  6. Ottieni l’estensione di un file usando gli operatori ternari in Java
  7. Ottieni l’estensione di un file usando il metodo stream() in Java
  8. Ottieni l’estensione di un file usando Regex in Java
Ottieni l'estensione di un file in Java

Questo tutorial introduce come ottenere l’estensione di un file in Java.

Ottieni l’estensione del file usando il metodo getExtension() in Java

Per ottenere un’estensione di un file, possiamo usare il metodo getExtension() della classe FilenameUtils. Questo metodo restituisce l’estensione del file. Poiché questo metodo appartiene alla libreria Apache commons, è necessario scaricare la libreria dal sito ufficiale di Apache per utilizzare i JAR nel progetto.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file con il metodo lastIndexOf() in Java

Se non si desidera utilizzare alcun metodo integrato, utilizzare l’esempio di codice fornito che utilizza il metodo lastIndexOf() per ottenere l’estensione del file. È il modo più semplice e facile che coinvolge solo metodi stringa. Vedi l’esempio sotto.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file con analisi di stringhe in Java

Questa è un’altra soluzione che include diversi scenari incluso quello (se punto (.) È nel percorso del file). Questo metodo restituisce il risultato accurato anche se il percorso del file ha un punto (.) Tra il percorso del file. Vedi l’esempio sotto.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file usando il metodo replaceAll() in Java

Possiamo usare il metodo replaceAll() per ottenere l’estensione del file come abbiamo fatto nell’esempio sotto. Usiamo l’espressione regolare in questo metodo e raccogliamo il risultato in una variabile.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file usando i metodi contains() e lastIndexOf() in Java

Il metodo contains() è usato per controllare se il carattere specificato è presente o meno nella stringa e il metodo lastIndexOf() restituisce un valore di indice del carattere specificato che viene passato al metodo substring() per ottenerlo estensione del file. Usiamo questi metodi in questo codice per ottenere l’estensione del file. Vedi l’esempio sotto.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file usando gli operatori ternari in Java

Se ti senti a tuo agio con gli operatori ternari (?, :) allora usali con i metodi substring() e lastIndexOf(). Riduce la riga di codice e restituisce il risultato in una singola istruzione.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file usando il metodo stream() in Java

Possiamo usare il metodo stream() della classe Arrays per convertire il nome del file in stream e usare il metodo split() per separare il nome del file dal punto (.). Vedi l’esempio sotto.

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

Produzione:

File extension is : pdf

Ottieni l’estensione di un file usando Regex in Java

Questa è un’altra soluzione che utilizza il pacchetto regex. Il metodo compile() e matcher() della classe Pattern viene utilizzato per recuperare l’estensione del file in questo esempio Java. Vedi l’esempio sotto.

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

Produzione:

File extension is : pdf

Articolo correlato - Java IO

Articolo correlato - Java File