Path Class
Path Class
Introducida en Java SE 7.
▸ Representa una ruta en el sistema de ficheros.
▸ Contiene el nombre de fichero y la lista de directorios usada para construir la ruta.
▸ Permite manejar diferentes sistemas de ficheros (Windows, Linux, Mac, …
OPERACIONES CON PATH
▸ Crear un Path
▸ Obtener información de un Path
▸ Eliminar redundancias
▸ Unir dos Paths
▸ Comparar dos paths
La creación de un Path hará casi siempre uso de los diferentes métodos estáticos de Paths
Crear Paths:
Path p1 = Paths.get("java", "temario.txt");
// C:\Users\peter\Desktop\Repos\atlasjava\java\temario.txt
Path p2 = FileSystems.getDefault().getPath("java", "temario.txt");
// C:\Users\peter\Desktop\Repos\atlasjava\java\temario.txt
Path p3 = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");
// C:\Users\peter\documents\java\temario.txt
Path p4 = FileSystems.getDefault().getPath("");
// C:\Users\peter\Desktop\Repos\atlasjava
System.out.println(p1.toAbsolutePath());
System.out.println(p2.toAbsolutePath());
System.out.println(p3.toAbsolutePath());
System.out.println(p4.toAbsolutePath());
Datos de Path:
Path path = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");
System.out.format("toString: %s%n", path);
// toString: C:\Users\peter\documents\java\temario.txt
System.out.format("getFileName: %s%n", path.getFileName());
// getFileName: temario.txt
System.out.format("getName(0): %s%n", path.getName(0));
// getName(0): Users
System.out.format("getNameCount: %d%n", path.getNameCount());
// getNameCount: 5
System.out.format("subpath(0,2): %s%n", path.subpath(0, 2));
// subpath(0,2): Users\peter
System.out.format("getParent: %s%n", path.getParent());
// getParent: C:\Users\peter\documents\java
System.out.format("getRoot: %s%n", path.getRoot());
// getRoot: C:\
Normalización con Paths:
Path path = Paths.get(System.getProperty("user.home"), "documents", "java", "..", "..", "temario.txt");
System.out.println(path); // C:\Users\peter\documents\java\..\..\temario.txt
Path normalized = path.normalize();
System.out.println(normalized); //C:\Users\peter\temario.txt
Unir dos Path:
Path basePath = Paths.get(System.getProperty("user.home"), "documents", "java");
Path file = Paths.get("temario.txt");
Path complete = basePath.resolve(file);
System.out.println(complete);
// C:\Users\peter\documents\java\temario.txt
Comparar Paths:
Path p1 = Paths.get(System.getProperty("user.home"), "documents", "java", "..", "..", "documents", "java",
"temario.txt");
Path p2 = Paths.get(System.getProperty("user.home"), "documents", "java", "temario.txt");
if (p1.equals(p2))
System.out.println("Son iguales");
else
System.out.println("No son iguales");
if (p1.normalize().equals(p2))
System.out.println("Ahora si son iguales");