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.