Java Gold合格への道 ~Java I/O・Pathインタフェース~
スポンサーリンク
こんにちは。たろすです。
今回はJava I/OのPathインタフェースについて説明します。
Pathインタフェースとは
PathインタフェースはJava SE 7から追加されたファイルやディレクトリのパスを表すクラスです。
Java SE 6以前はFileクラスが用いられて気ましたが、様々な扱いにくさがありPathインタフェースが追加されました。
Pathインタフェースの主なメソッド
Path path = Paths.get("C:/aaa/bbb/ccc"); System.out.println("ルート:" + path.getRoot()); System.out.println("最下層のパス名:" + path.getFileName()); System.out.println("ルートを除くパス階層数:" + path.getNameCount()); System.out.println("パスの抜き出し:" + path.subpath(1, 2)); System.out.println("解決(絶対パス):" + path.resolve(Paths.get("D:/ddd"))); System.out.println("解決(相対パス):" + path.resolve(Paths.get("eee"))); System.out.println("親パスに対して解決(絶対パス):" + path.resolveSibling(Paths.get("D:/ddd"))); System.out.println("親パスに対して解決(相対パス):" + path.resolveSibling(Paths.get("eee"))); Path p0 = Paths.get("C:/aaa/./bbb/../ccc"); System.out.println("冗長なパスを正規化:" + p0.normalize()); Path p1 = Paths.get("C:/ddd/eee"); System.out.println("相対パスとして解決:" + path.relativize(p1));
ルート:C:\ 最下層のパス名:ccc ルートを除くパス階層数:3 パスの抜き出し:bbb 解決(絶対パス):D:\ddd 解決(相対パス):C:\aaa\bbb\ccc\eee 親パスに対して解決(絶対パス):D:\ddd 親パスに対して解決(相対パス):C:\aaa\bbb\eee 冗長なパスを正規化:C:\aaa\ccc 相対パスとして解決:..\..\..\ddd\eee
getRoot
パスのルートを返します。
getNameCount
ルートを除いたパス階層の数を返します。
パスがルートだけの場合は0を返します。
subpath
パスの一部を抜き出して返します。
resolve
指定されたパスを呼び出し元のパスに対して解決します。
具体的には、引数が絶対パスの場合は引数のパスがそのまま返されます。
相対パスの場合には呼び出し元のパスに引数のパスを結合したものを返します。
resolveSibling
引数のパスを呼び出し元の親パスに対して解決します。
具体的には、引数が絶対パスの場合は引数のパスがそのまま返されます。
相対パスの場合には呼び出し元の親パスに引数のパスを結合したものを返します。
relativize
呼び出し元のパスから引数のパスへの相対パスを返します。