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.
1
• 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
• https://repl.it/@tpitner/PB162-Java-Lecture-12-files
2