2015-06-18 6 views
14

Quello che ho fatto fino ad ora è la seguente:Esiste un nuovo modo Java 8 per recuperare l'estensione del file?

String fileName = "file.date.txt"; 
String ext = fileName.substring(fileName.lastIndexOf('.') + 1); 

System.out.printf("'%s'%n", ext); // prints: 'txt' 

C'è un modo più conveniente in Java 8?

+0

L'importanza di un'estensione del file è spesso sovrastimato. La soluzione 'sottostringa' /' lastIndexOf' è sufficiente. – Holger

+0

Java non può fornire mezzi espliciti per ottenere "l'estensione del file" del nome di un percorso perché il concetto di estensione del file non è portabile. Unix in realtà non li ha (si può avere un '.' vicino alla fine del nome di una foglia di un file, ma il kernel O/S non considera ciò che segue essere significativo). – Raedwald

risposta

7
+2

Le modifiche apportate a java.io risp. java.nio sono riepilogati qui http://docs.oracle.com/javase/8/docs/technotes/guides/io/enhancements.html#jdk8 – mike

+0

@molto buon punto, non ho visto il link –

9

No, non esiste un modo più efficiente/conveniente in JDK, ma molte librerie offrono metodi pronti per questo, come Guava: Files.getFileExtension(fileName) che avvolge il codice in un unico metodo (con ulteriore convalida).

Problemi correlati