サーチ…


構文

  • Paths.get(String first、String ... more)// String要素でPathインスタンスを作成します。
  • Paths.get(URI uri)// URIでパスインスタンスを作成します。

パスの作成

Pathクラスは、ファイルシステム内のパスをプログラマティカルに表現するために使用されます(したがって、存在しないファイルであってもファイルとディレクトリを指すことができます)

パスは、ヘルパークラスPathsを使用して取得できます。

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");

パスに関する情報の取得

パスに関する情報は、 Pathオブジェクトのメソッドを使用して取得できます。

  • toString()は、パスの文字列表現を返します。

    Path p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"
    
  • getFileName()は、ファイル名(または、具体的には、パスの最後の要素

    Path p1 = Paths.get("/var/www"); // p1.getFileName() returns "www"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"
    
  • getNameCount()は、パスを構成する要素の数を返します。

    Path p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2
    
  • getName(int index)れたインデックスにある要素を返します。

    Path p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"
    
  • getParent()は、親ディレクトリのパスを返します。

    Path p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"
    
  • getRoot()はパスのルートを返します。

    Path p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
    

パスの操作

2つのパスに参加する

パスはresolve()メソッドを使用して結合できます。渡されるパスは、ルート要素を含まないパスである部分パスでなければなりません。

Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"

パスの正規化

パスには要素を含めることができます. (あなたが現在入っているディレクトリを指しています)と.. (親ディレクトリを指しています)。

パスで使用される場合、 .パスの宛先を変更することなく、いつでも除去することができ、 ..直前の要素と一緒に除去することができます。

Paths APIでは、 .normalize()メソッドを使用してこれを行い.normalize()

Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"

ファイルシステムを使った情報の取得

ファイルシステムと対話するには、クラスFilesメソッドを使用しFiles

存在を確認する

パスが指すファイルまたはディレクトリの存在を確認するには、次の方法を使用します。

Files.exists(Path path)

そして

Files.notExists(Path path)

!Files.exists(path) neccesarilyに等しくなるようにする必要はありませんFiles.notExists(path) 、三つの可能なシナリオがあるので:

  • ファイルまたはディレクトリの存在が検証されます( existstrueを返し、 notExistsはこの場合falseを返します)
  • ファイルまたはディレクトリが存在しない( existsfalseを返し、 notExiststrue返す)
  • ファイルやディレクトリの有無は確認できません(アクセス制限など): existsnonExists両方exists falseを返します。

パスがファイルまたはディレクトリを指しているかどうかを確認する

これは、 Files.isRegularFile(Path path) Files.isDirectory(Path path)Files.isRegularFile(Path path) Files.isDirectory(Path path)を使用して行われFiles.isRegularFile(Path path)

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false

Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true

プロパティの取得

これは、以下の方法を使用して行うことができます。

Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)

Files.isHidden(Path path)
Files.isSymbolicLink(Path path)

MIMEタイプの取得

Files.probeContentType(Path path)

これは、ファイルのMIMEタイプを取得しようとします。次のように、MIMEタイプStringを返します。

  • text/plainファイル用のtext/plain
  • HTMLページのtext/html
  • PDFファイルのためのapplication/pdf
  • PNGファイル用のimage/png

ファイルの読み込み

ファイルは、 Filesクラスを使用してバイト単位および行単位で読み取ることができます。

Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);

Files.readAllLines()オプションでパラメータとしてcharsetをとります(デフォルトはStandardCharsets.UTF_8 )。

List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);

ファイルの書き込み

ファイルは、 Filesクラスを使用してバイトとラインで書くことができます

Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
    new String[]{"First line", "Second line", "Third line"});

Files.write(p2, lines);
Files.write(Path path, byte[] bytes)

既存のファイルが上書きされ、存在しないファイルが作成されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow