Ottieni l'estensione di un file in Java
-
Ottieni l’estensione del file usando il metodo
getExtension()
in Java -
Ottieni l’estensione di un file con il metodo
lastIndexOf()
in Java - Ottieni l’estensione di un file con analisi di stringhe in Java
-
Ottieni l’estensione di un file usando il metodo
replaceAll()
in Java -
Ottieni l’estensione di un file usando i metodi
contains()
elastIndexOf()
in Java -
Ottieni l’estensione di un file usando gli
operatori ternari
in Java -
Ottieni l’estensione di un file usando il metodo
stream()
in Java - Ottieni l’estensione di un file usando Regex 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
- Converti Inputstream in Byte Array in Java
- Converti un InputStream in una stringa in Java
- Leggi tutti i file di una cartella in Java
- Percorso relativo in Java