Javaの便利なPathの使い方をサンプルコードと共に解説
  • facebookページ
  • twitterページ
  • 2019.11.28

    Javaの便利なPathの使い方をサンプルコードと共に解説

    Pathクラスは便利

    Javaでファイルパスを扱う時に便利なPathクラス。例えば、ディレクトリバスを含むパス情報から、ファイル名を取り出すgetFileName()メソッドなど、ファイルパスを操作する時に便利なメソッドが一杯あります。

    この記事では、JavaのPathクラスでよく使う便利なメソッドをサンプルコードを交えて解説します。

    Pathのインスタンスを取得する方法

    Pathを利用するには、Pathクラスのインスタンスを取得する必要があります。

    インスタンスの取得には、FileSystemクラスのgetPathメソッドを使用します。getPathメソッドの引数に、取得したいディレクトリまたはファイルのパスを指定します。

    getPathメソッドの引数を複数指定すると、渡した引数を連結させたパスのインスタンスが取得できます。

    FileSystem以外にも、PathsクラスのgetメソッドでもPathクラスのインスタンスが取得できます。

    絶対パスかどうかを調べる isAbsolute

    isAbsolute()メソッドは、指定したパスが絶対パスかどうかを調べられます。絶対パスの場合、このメソッドはtrueを戻り値に返します。

    以下のサンプルコードを見てみましょう。

    コードを実行すると、次のような結果となり、絶対パスで指定している1つ目のパスは、isAbsoluteメソッドの結果がtrueになっています。

    【実行結果】

    OSの環境によって、絶対パスの判定が異なる

    isAbsolute()メソッドでの、絶対パス判定は、OSによって判定結果が異なります。

    例えば、「C:¥Path¥To¥File.txt」のような絶対パスをWindows環境で実行すれば、isAbsoluteメソッドはtrueを返しますが、MacやLinux環境で実行すると結果はfalseになります。

    これは、Pathクラスは実行するオペレーションシステムに依存するため、ルートパスはスラッシュ(/)で書くMacやLinuxの環境では、「C:」ドライブなどの概念がなく、相対パスと判断されるためです。

    ファイル名を取得する getFileName

    getFileName()メソッドは、ディレクトリバスを含むパスから、ファイル名を取得します。開発の現場では、パスからファイル名を取り出すシーンは意外と多くあり、覚えておくと便利です。

    【実行結果】

    親ディレウトリを取得する getParent

    getParent()メソッドは、指定したパスの親パスを返します。ディレクトリ+ファイル名のパスの場合、ディレクトリパスが帰り、ディレクトリのみを指定した場合、1つ上の階層のディレクトリパスが返ります。

    ファイル名を含むパスを指定した場合

    【実行結果】

    ディレウトリパスのみを指定した場合

    【実行結果】

    ルートパスを取得する getRoot

    getRoot()メソッドは、パスのルートを返します。

    【実行結果】

    ルートが分からない相対パスなどで、getRoot()メソッドを呼んだ場合は、結果はnullになります。

    【実行結果】

    2つのパスをつなげる resolveメソッド

    resolve()メソッドは、引数で指定したパスをつなげて、新しいPathクラスのインスタンスを作成します。

    次の例では、「/path/to/dir」と「sub_dir/file1.txt」のパスをつなげた新しいPathを作成しています。

    【実行結果】

    path.resolve() メソッドの引数には、Pathクラスのインスタンスを指定することもできるため、上のコードは、次のように書き直すこともできます。

    ポテパンダの一言メモ

    引数に絶対パスを渡すと思った結果にならない

    resolve()メソッドの引数に、絶対パスを指定すると、戻り値には引数で渡した絶対パスがそのまま返ってきます。間違って絶対パスを引数に渡すと、思い通りの結果になることがあるため、注意が必要です。

    Pathクラスを活用してファイルパスを操作しよう

    Javaでファイルパスを扱う時に便利なPathクラスを解説してきました。Pathクラスはファイル操作を行う時の基本となりますので、是非覚えておきましょう。

    【関連記事】
    【Java】初心者必見!ファイル読み込みの方法2選

    【Java基礎】プロパティファイルから情報を読み込む



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE