1. Path
lớp học
Nếu bạn muốn viết một chương trình thực hiện điều gì đó với các tệp trên đĩa, điều đó khá dễ dàng. Java có rất nhiều lớp giúp bạn làm việc với cả tệp và nội dung của chúng.
Các phiên bản đầu tiên của Java đã sử dụng các lớp như File
và FileInputStream
để làm việc với các tệp. Tuy nhiên, File
lớp hiện không được dùng nữa và không được khuyến nghị sử dụng. Tất nhiên, bạn vẫn có thể gặp nó trong mã, tham số phương thức hoặc hàm tạo của lớp.
Ngay từ đầu, chúng ta sẽ bắt đầu học cách làm việc với các tệp bằng cách sử dụng Path
lớp. Path
là lớp thay thế File
. Nó an toàn hơn và hiệu quả hơn.
Path
lớp học
Về mặt kỹ thuật, Path
không phải là một lớp - nó là một giao diện. Điều này được thực hiện để cho phép viết một hậu duệ của Path
lớp cho mỗi hệ điều hành (và hệ thống tệp).
Windows có một tiêu chuẩn để ghi đường dẫn tệp và Linux có một tiêu chuẩn khác. Tất nhiên, có rất nhiều hệ điều hành khác trên thế giới và mỗi hệ điều hành đều có tiêu chuẩn riêng.
Đó là lý do tại sao Path
giao diện được sử dụng ở mọi nơi trong các phương thức làm việc với tệp, mặc dù trong thực tế, công việc diễn ra thông qua các lớp con của nó: WindowsPath
, UnixPath
, ...
Tạo một Path
đối tượng
Để tạo một Path
đối tượng (mà thực sự sẽ là một đối tượng của WindowsPath
lớp con cháu), bạn cần sử dụng một câu lệnh như sau:
Path name = Path.of(path);
Đâu name
là tên của một Path
biến, và path
là đường dẫn đến tệp (hoặc thư mục) bao gồm cả tên của tệp (hoặc thư mục). Và of
là một phương thức tĩnh của Path
lớp.
Phương of()
thức được sử dụng để tạo WindowsPath
các đối tượng nếu chương trình đang chạy trên Windows. Nếu chương trình chạy trên Linux, thì UnixPath
các đối tượng sẽ được tạo. Bạn không thể tạo Path
đối tượng bằng mã như .new Path()
Ví dụ:
Mã số | Ghi chú |
---|---|
|
Đường dẫn đến tệp |
|
Đường dẫn đến thư mục |
Tệp (hoặc thư mục) không cần tồn tại để một Path
đối tượng hợp lệ tồn tại. Có thể bạn chỉ muốn tạo một tệp... Một Path
đối tượng giống như một sự cải tiến String
: nó không gắn với một tệp cụ thể trên đĩa — nó chỉ lưu trữ một đường dẫn nhất định trên đĩa. Đó là nó.
2. Các phương thức của Path
kiểu
Giao Path
diện có khá nhiều phương pháp thú vị. Những cái thú vị nhất được trình bày trong bảng dưới đây.
Phương pháp | Sự miêu tả |
---|---|
|
Trả về thư mục mẹ |
|
Trả về tên tệp không có thư mục |
|
Trả về thư mục gốc từ một đường dẫn |
|
Kiểm tra xem đường dẫn hiện tại có phải là tuyệt đối không |
|
Chuyển đổi đường dẫn thành tuyệt đối |
|
Xóa ký tự đại diện trong tên thư mục. |
|
Xây dựng một đường dẫn tuyệt đối mới từ các đường dẫn tuyệt đối và tương đối. |
|
Lấy một đường dẫn tương đối từ hai đường dẫn tuyệt đối. |
|
Kiểm tra xem đường dẫn hiện tại có bắt đầu bằng một đường dẫn nhất định hay không |
|
Kiểm tra xem đường dẫn hiện tại có kết thúc bằng một đường dẫn nhất định hay không |
|
Chia đường dẫn thành các phần bằng / dấu phân cách. Trả về số phần. |
|
Chia đường dẫn thành các phần bằng / dấu phân cách. Trả về một phần theo chỉ mục của nó. |
|
Chia đường dẫn thành các phần bằng / dấu phân cách. Trả về đường dẫn phụ tương ứng với khoảng đã cho. |
|
Chuyển đổi một Path đối tượng thành một File đối tượng không dùng nữa |
|
Chuyển đổi một Path đối tượng thành một URI đối tượng |
Dưới đây là một mô tả ngắn gọn về các phương pháp hiện có.
3. Chia đường dẫn thành nhiều phần
Phương getParent()
thức trả về đường dẫn trỏ đến thư mục mẹ cho đường dẫn hiện tại. Bất kể đường dẫn này là thư mục hay tệp:
Mã số | Giá trị |
---|---|
|
|
|
|
|
|
Phương getFileName()
thức trả về một tên tệp (hoặc thư mục) duy nhất - bất cứ thứ gì xuất hiện sau dấu phân cách cuối cùng:
Mã số | Giá trị |
---|---|
|
|
|
|
|
|
Phương getRoot()
thức trả về đường dẫn đến thư mục gốc:
Mã số | Giá trị |
---|---|
|
|
4. Đường dẫn tuyệt đối và tương đối
Có hai loại đường dẫn: tuyệt đối và tương đối. Một đường dẫn tuyệt đối bắt đầu từ thư mục gốc. Đối với Windows, đây có thể là c:\
thư mục; cho Linux — /
thư mục
Một đường dẫn tương đối có ý nghĩa liên quan đến một số thư mục. Đó là, nó giống như sự kết thúc của con đường, nhưng không có sự khởi đầu. Bạn có thể biến đường dẫn tương đối thành đường dẫn tuyệt đối và ngược lại
boolean isAbsolute()
phương pháp
Phương thức kiểm tra xem đường dẫn hiện tại có phải là tuyệt đối hay không
Mã số | Giá trị |
---|---|
|
|
|
|
Path toAbsolutePath()
phương pháp
Chuyển đổi đường dẫn thành tuyệt đối. Nếu cần, hãy thêm thư mục làm việc hiện tại vào đó:
Mã số | Giá trị |
---|---|
|
|
|
|
Path normalize()
phương pháp
Trong đường dẫn, thay vì tên thư mục, bạn có thể viết "..", có nghĩa là quay lại một thư mục . Bình thường hóa loại bỏ những điều này. Ví dụ:
Mã số | Giá trị |
---|---|
|
|
|
|
Path relativize(Path other)
phương pháp
Phương pháp này relativize()
cho phép bạn xây dựng "sự khác biệt giữa các đường dẫn": một đường dẫn so với đường dẫn khác
Mã số | Giá trị |
---|---|
|
|
|
|
|
Ngoại lệ Đối số bất hợp pháp: hai đường dẫn có một "gốc" khác nhau (các đĩa khác nhau) |
Path resolve(Path other)
phương pháp
Phương thức này resolve()
ngược lại với relativize()
: nó xây dựng một đường dẫn tuyệt đối mới từ một đường dẫn tuyệt đối và tương đối.
Mã số | Giá trị |
---|---|
|
|
|
|
toFile()
phương pháp
Phương thức trả về một File
đối tượng không dùng nữa lưu trữ cùng một đường dẫn tệp với Path
đối tượng.
toURI()
phương pháp
Phương thức này chuyển đổi đường dẫn thành một URI tiêu chuẩn và trả về một đối tượng chứa đường dẫn đến tệp:
Đường dẫn đến tệp | URI vào tệp |
---|---|
|
|
GO TO FULL VERSION