2015-06-18 17 views
14

Những gì tôi đã làm cho đến bây giờ là sau đây:Có cách Java 8 mới để truy xuất phần mở rộng của tệp không?

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

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

Có một cách thuận tiện hơn trong Java 8?

+0

Tầm quan trọng của phần mở rộng tệp thường được đánh giá quá cao. Giải pháp 'substring' /' lastIndexOf' là đủ. – Holger

+0

Java không thể cung cấp cho bạn phương tiện rõ ràng để nhận được "phần mở rộng tệp" của tên đường dẫn vì khái niệm về phần mở rộng tệp không thể di chuyển được. Unix không thực sự có chúng (bạn có thể có một '.' gần cuối của một tên tập tin lá, nhưng hạt nhân O/S không xem xét những gì sau là đáng kể). – Raedwald

Trả lời

7
+2

Các thay đổi được thực hiện đối với java.io resp. java.nio được tóm tắt tại đây http://docs.oracle.com/javase/8/docs/technotes/guides/io/enhancements.html#jdk8 – mike

+0

@mike điểm tốt, không thấy liên kết –

9

Không có cách nào hiệu quả/tiện lợi hơn trong JDK, nhưng nhiều thư viện cung cấp cho bạn các phương pháp sẵn sàng cho điều này, như Guava: Files.getFileExtension(fileName), bao bọc mã của bạn theo phương thức đơn (có xác nhận bổ sung).

Các vấn đề liên quan