2013-05-28 44 views
13

Tôi đang sử dụng các tính năng của Java 7 để đọc trong một tệp. Vì mục đích đó, tôi cần một đối tượng thuộc loại Path. Trong mã của tôi, tôi sử dụng hàm getResource() để lấy đường dẫn tương đối (thuộc loại URL) vào một tệp.Java 7: lấy đường dẫn của tài nguyên (như đối tượng của đường dẫn kiểu)

Tuy nhiên, bây giờ tôi có vấn đề mà tôi không thực sự hiện nay như thế nào để có được từ một đối tượng kiểu URL đến một đối tượng kiểu Path dễ dàng (mà không phải đi qua đúc tới eg để URI sau đó đến File và từ đó đến Path)?

Dưới đây là một ví dụ để bạn thấy những gì tôi muốn làm:

URL url = getClass().getResource("file.txt"); 
Path path = (new File(url.toURI())).toPath(); //is there an easier way? 
List<String> list = Files.readAllLines(path, Charset.defaultCharset()); 

Vậy là có một cách dễ dàng hơn để đạt được điều đó và không cần phải làm điều đó đang lộn xộn trên dòng 2?

Trả lời

15

Làm thế nào về

Path path = Paths.get(url.toURI()); 

Nó không phải là thích hợp để tạo ra một tập tin từ URL của bạn, vì nó nhận được từ classpath và các tập tin thực sự có thể trong vòng một jar.

1

Trong Scala sẽ

import java.nio.file.Paths 

val resource = getClass.getResource("myfile.txt") 
val path = Paths.get(resource.toURI) 

Trong Java nên được như vậy (với cú pháp hơi khác nhau)

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