2015-06-18 28 views
14

co zrobiłem do tej pory jest następujący:Czy jest nowa metoda Java 8 pobierania rozszerzenia pliku?

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

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

Czy istnieje bardziej wygodny sposób w Java 8?

+0

Znaczenie rozszerzenia pliku jest często zawyżone. Rozwiązanie 'substring' /' lastIndexOf' jest wystarczające. – Holger

+0

Java nie może dostarczyć ci wyraźnych środków do uzyskania "rozszerzenia pliku" nazwy ścieżki, ponieważ pojęcie rozszerzenia pliku nie jest przenośne. Unix tak naprawdę ich nie ma (możesz mieć '.' pod koniec nazwy pliku, ale jądro O/S nie bierze pod uwagę, co jest znaczące). – Raedwald

Odpowiedz

7
+2

Zmiany wprowadzone w java.io wzgl. java.nio są podsumowane tutaj http://docs.oracle.com/javase/8/docs/technotes/guides/io/enhancements.html#jdk8 – mike

+0

@mike dobry punkt, nie widziałem linku –

9

Nie ma bardziej wydajnego/wygodnego sposobu w JDK, ale wiele bibliotek udostępnia gotowe metody, takie jak Guava: Files.getFileExtension(fileName), który otula kod w jedną metodę (z dodatkową weryfikacją).