Path.of în Java

Creează un Path din unul sau mai multe nume; le unește cu separatorul corect al sistemului.

Sintaxă
static Path of(String primul, String... restul)
static Path of(URI uri)

Ce face Path.of

Path.of("date", "2026", "note.txt") unește numele date într-o cale: date/2026/note.txt pe Linux și macOS, date\2026\note.txt pe Windows. Poți da și o cale întreagă ca un singur text: Path.of("date/2026/note.txt").

Înainte de Java 11 se folosea Paths.get(...), care face exact același lucru și încă funcționează. Textele goale sunt ignorate, iar caracterele interzise de sistem (de exemplu un octet zero) dau InvalidPathException.

Parametri

Parametru Descriere
primul Primul nume sau toată calea.
restul Opțional: nume adăugate pe rând.
uri O adresă file:///....

Ce returnează

Un Path nou.

Exemple

Exemplul 1: Moduri de a scrie aceeași cale

import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
    public static void main(String[] args) {
        Path a = Path.of("date", "2026", "note.txt");
        Path b = Path.of("date/2026/note.txt");
        Path c = Paths.get("date", "2026", "note.txt");

        System.out.println(a);
        System.out.println(a.equals(b) + " " + a.equals(c));
        System.out.println(Path.of("date", "", "note.txt"));
    }
}

Rezultat

date/2026/note.txt
true true
date/note.txt

Exemplul 2: O cale construită din date

Numele folderului vine dintr-o variabilă; Path.of pune separatorul.

import java.nio.file.Path;

public class Main {
    public static void main(String[] args) {
        String client = "ana-popescu";
        int an = 2026;
        Path dosar = Path.of("clienti", client, String.valueOf(an), "contract.pdf");
        System.out.println(dosar);
        System.out.println("Absolută? " + dosar.isAbsolute());
        System.out.println(Path.of("/srv", "site").isAbsolute());
    }
}

Rezultat

clienti/ana-popescu/2026/contract.pdf
Absolută? false
true

Greșeli frecvente

  • Construiești căi lipind texte cu + "/" +. Pe Windows și în cazuri cu slash dublu apar probleme; lasă Path.of să pună separatorul.
  • Încerci new Path(...). Path este o interfață; folosești Path.of.

Comenzi înrudite

  • Path: Reprezintă calea unui fișier sau folder (ex. date/note.txt); nu verifică dacă fișierul există. toString o dă ca text.
  • Path.resolve: Adaugă o cale la sfârșitul altei căi: folder.resolve(„note.txt”) dă folder/note.txt.
  • Path.toAbsolutePath: Transformă o cale relativă în cale absolută, adăugând în față folderul curent al programului.
  • Files: Clasa cu metode statice pentru lucrul cu fișiere și foldere: citire, scriere, copiere, mutare, ștergere, listare.