nio - isregularfile - Java 7: obtener Ruta de recurso(como objeto de tipo Ruta)
java.nio.file java 6 (2)
Estoy usando las características de Java 7 para leer en un archivo. Para ello necesito un objeto de tipo Path
. En mi código, uso la función getResource()
para obtener la ruta relativa (de tipo URL
) a un archivo.
Sin embargo, ahora tengo el problema de que realmente no sé cómo obtener de un objeto de tipo URL
a un objeto de tipo Path
fácilmente ( sin tener que pasar por castings, por ejemplo, a URI
luego a File
y de ahí a Path
) ?
Aquí un ejemplo para mostrarte lo que me gustaría hacer:
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());
Entonces, ¿hay una manera más fácil de lograr eso y no tener que hacer ese desorden de código en la línea 2?
En scala seria
import java.nio.file.Paths
val resource = getClass.getResource("myfile.txt")
val path = Paths.get(resource.toURI)
En Java debería ser el mismo (con una sintaxis ligeramente diferente)
Qué tal si
Path path = Paths.get(url.toURI());
No es correcto crear un archivo desde su URL, ya que se obtiene de la ruta de clases y el archivo puede estar dentro de un archivo jar.