Balík New Input/Output (nio)

Tomáš Pitner, Radek Ošlejšek, Marek Šabo

Balík java.nio

  • Třída Path jako nová a mocnější reprezentace cesty k souboru

  • Pomocná třída Paths

  • Pomocná třída Files pro pokročilejší manipulaci se soubory

Path

  • Nástupce File, konceptuálně zhruba totéž, ale s více možnostmi

  • Instance jsou nemodifikovatelné a vláknově bezpečné.

  • Podporuje více systémů souborů na jednom počítači

  • Nabízí metody jako getFileName, getParent, getRoot a subpath.

  • Objekt Path je porovnatelný, iterovatelný a sledovatelný (Comparable<Path>, Iterable<Path>, Watchable).

  • Zejména sledovatelnost je novou vlastností, umožňuje reagovat na změny v systému souborů (např. v adresáři).

Zajímavé metody Path

  • Kompletní dokumentace Path API

  • Užitečné metody:

    resolve

    umožňuje vyhodnotit danou cestu vůči jiné (např. relativní cestu vůči aktuálnímu adresáři)

    relativize

    naopak relativizuje, vytvoří relativní z absolutní, když zadáme výchozí adresář.

    startsWith, endWith

    podobně jako u řetězců, ale funguje na úseky cesty.

Files

  • Typická "utility class", třída nabízející statické metody.

  • Týkají se souborových systémů, souborů, adresářů atd.

  • Nabízí metody pro:

    • kopírování

    • mazání

    • procházení (traverzace) systému souborů

    • přístup k metadatům souborů (čas, práva, uživatel)

    • přímé vytváření proudů (např. newBufferedReader)

  • Další v tutoriálu Oracle File Operations

  • Kompletní dokumentace Files API

Repl.it demo ke třídě Path