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基礎】プロパティファイルから情報を読み込む


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

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









    ABOUT US

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

    READ MORE

    ポテパンおすすめ案件