2013-05-28 9 views
13

Sto utilizzando le funzionalità di Java 7 da leggere in un file. A tale scopo ho bisogno di un oggetto di tipo Path. Nel mio codice, utilizzo la funzione getResource() per ottenere il percorso relativo (di tipo URL) in un file.Java 7: ottiene il percorso della risorsa (come oggetto del tipo Percorso)

Tuttavia, ora ho il problema che non ho davvero ora come andare da un oggetto di tipo URL ad un oggetto di tipo Path facilmente (senza dover passare attraverso fusioni, ad esempio, a URI poi a File e da quello a Path)?

Ecco un esempio per mostrare ciò che vorrei fare:

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()); 

Così, c'è un modo più semplice per raggiungere questo obiettivo e non dover fare quel codice pasticcio sulla linea 2?

risposta

15

Come su

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

Non è corretto per creare un file dal URL, dal momento che è ottenuto dal percorso di classe e il file può effettivamente essere all'interno di un vaso.

1

In Scala sarebbe

import java.nio.file.Paths 

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

In Java dovrebbe essere lo stesso (con sintassi leggermente diversa)

Problemi correlati