2013-05-28 2 views
13

Ich verwende die Funktionen von Java 7, um eine Datei einzulesen. Zu diesem Zweck benötige ich ein Objekt vom Typ Path. In meinem Code verwende ich die getResource() Funktion, um den relativen Pfad (vom Typ URL) zu einer Datei zu erhalten.Java 7: get Pfad der Ressource (als Objekt vom Typ Pfad)

Aber jetzt habe ich das Problem, dass ich nicht wirklich jetzt, wie von einem Objekt vom Typ PathURL auf ein Objekt vom Typ leicht zu bekommen (ohne durch Castings URI dann zB gehen zu File und von diesem zu Path)?

Hier ist ein Beispiel, Ihnen zu zeigen, was ich tun möchte: mit

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

So gibt es einen einfacheren Weg, das zu erreichen, und nicht mehr als 2 auf der Linie, dass Code Chaos zu tun?

Antwort

15

Wie sei es

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

Es ist nicht richtig, eine Datei von Ihrer URL zu erstellen, da es aus dem Classpath bekommen hat und die Datei kann tatsächlich in einem Glas sein.

1

In Scala würde

import java.nio.file.Paths 

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

In Java sein sollte gleich sein (mit etwas anderen Syntax)

Verwandte Themen