Balík New Input/Output (nio) 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, Iterable, 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í 1 ◦ 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 • https://repl.it/@tpitner/PB162-Java-Lecture-12-files 2