Java NIO - Jalur

Seperti namanya Path adalah lokasi tertentu dari suatu entitas seperti file atau direktori dalam sistem file sehingga seseorang dapat mencari dan mengaksesnya di lokasi tersebut.

Secara teknis dalam hal Java, Path adalah antarmuka yang diperkenalkan dalam paket file Java NIO selama Java versi 7, dan merupakan representasi dari lokasi dalam sistem file tertentu. Sebagai antarmuka jalur dalam paket Java NIO sehingga mendapatkan nama yang memenuhi syarat sebagai java .nio.file.Path.

Secara umum, jalur suatu entitas dapat terdiri dari dua jenis, satu adalah jalur absolut dan yang lainnya adalah jalur relatif.Seperti nama kedua jalur menunjukkan bahwa jalur absolut adalah alamat lokasi dari akar ke entitas di mana ia menempatkannya sedangkan jalur relatif adalah alamat lokasi yang relatif terhadap beberapa jalur lain.Path menggunakan pembatas dalam definisinya sebagai "\" untuk Windows dan "/" untuk sistem operasi unix.

Untuk mendapatkan instance Path kita bisa menggunakan metode statis kelas java.nio.file.Paths get()Metode ini mengonversi string jalur, atau urutan string yang ketika digabungkan membentuk string jalur, menjadi instance Path. Metode ini juga melempar InvalidPathException runtime jika argumen yang diteruskan berisi karakter ilegal.

Seperti yang disebutkan di atas, jalur absolut diambil dengan meneruskan elemen root dan daftar direktori lengkap yang diperlukan untuk menemukan file. Sedangkan jalur relatif dapat diambil dengan menggabungkan jalur dasar dengan jalur relatif. Penarikan kedua jalur akan diilustrasikan dalam contoh berikut

Contoh

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path relative = Paths.get("file2.txt");
      System.out.println("Relative path: " + relative);
      Path absolute = relative.toAbsolutePath();
      System.out.println("Absolute path: " + absolute);
   }
}

Sejauh ini kita tahu apa itu antarmuka jalur mengapa kita membutuhkannya dan bagaimana kita bisa mengaksesnya Sekarang kita akan tahu apa metode penting yang disediakan antarmuka Path.

Metode penting dari Path Interface

  • getFileName() - Mengembalikan sistem file yang membuat objek ini.

  • getName() - Mengembalikan elemen nama jalur ini sebagai objek Path.

  • getNameCount() - Mengembalikan jumlah elemen nama di jalur.

  • subpath() - Mengembalikan Path relatif yang merupakan lanjutan dari elemen nama dari path ini.

  • getParent() - Mengembalikan jalur induk, atau null jika jalur ini tidak memiliki induk.

  • getRoot() - Mengembalikan komponen root dari jalur ini sebagai objek Path, atau null jika jalur ini tidak memiliki komponen root.

  • toAbsolutePath() - Mengembalikan objek Path yang mewakili jalur absolut dari jalur ini.

  • toRealPath() - Mengembalikan jalur sebenarnya dari file yang sudah ada.

  • toFile() - Mengembalikan objek File yang mewakili jalur ini.

  • normalize() - Mengembalikan jalur yang merupakan jalur ini dengan elemen nama yang berlebihan dihilangkan.

  • compareTo(Path other) - Membandingkan dua jalur abstrak secara leksikografis. Metode ini mengembalikan nol jika argumen sama dengan jalur ini, nilai kurang dari nol jika jalur ini secara leksikografis lebih kecil dari argumen, atau nilai lebih besar dari nol jika jalur ini secara leksikografis lebih besar dari argumen .

  • endsWith(Path other) - Menguji apakah jalur ini diakhiri dengan jalur yang diberikan Jika jalur yang diberikan memiliki N elemen, dan tidak ada komponen root, dan jalur ini memiliki N atau lebih elemen, jalur ini diakhiri dengan jalur yang diberikan jika N elemen terakhir dari setiap jalur, dimulai dari elemen terjauh dari root, adalah sama.

  • endsWith(String other) - Menguji apakah jalur ini diakhiri dengan Jalur, dibangun dengan mengubah string jalur yang diberikan, persis dengan cara yang ditentukan oleh metode endWith (Path).

Contoh

Contoh berikut mengilustrasikan berbagai metode antarmuka Path yang disebutkan di atas -

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path path = Paths.get("D:/workspace/ContentW/Saurav_CV.docx");
      FileSystem fs =  path.getFileSystem();
      System.out.println(fs.toString());
      System.out.println(path.isAbsolute());
      System.out.println(path.getFileName());
      System.out.println(path.toAbsolutePath().toString());
      System.out.println(path.getRoot());
      System.out.println(path.getParent());
      System.out.println(path.getNameCount());
      System.out.println(path.getName(0));
      System.out.println(path.subpath(0, 2));
      System.out.println(path.toString());
      System.out.println(path.getNameCount());
      Path realPath = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
      System.out.println(realPath.toString());
      String originalPath = "d:\\data\\projects\\a-project\\..\\another-project";
      Path path1 = Paths.get(originalPath);
      Path path2 = path1.normalize();
      System.out.println("path2 = " + path2);
   }
}