Sử dụng package mới java.nio trong Java để làm việc với Files và Folders

15:51 25/12/2023

Làm việc với files và folders hiệu quả hơn với java.nio? Nếu chưa biết, hãy đọc bài viết này ngay để thực hiện thành công nhé!

Giới thiệu Package java.nio

Từ version 1.7 java giới thiệu package mới java.nio giúp lập trình viên làm việc với hệ thống Files-Folders thuận tiện, hiệu quả hơn rất nhiều so với package java.io trước đó.

  • Paths, Files giúp thao tác dễ dàng hơn với hệ thống Files-Folders.
  • Đọc dữ liệu từ files và ghi dữ liệu ra files.

Làm việc với hệ thống Files-Folders

Paths và Files là các lớp tiện ích, cung cấp rất nhiều các phương thức giúp làm việc hiệu quả với folders và files.

import java.nio.file.Files;
import java.nio.file.Paths;

Ví dụ sau liệt kê tất cả các thư mục và files trong thư mục chứa project gốc:

FPT Polytechnic

Ở đây “.” là thư mục gốc chứa project.

Method Path.get(…) sẽ convert một giá trị kiểu String về giá trị kiểu Path – đường dẫn đến thư mục/file.

Method Files.list(path) trả về danh sách list các thư mục và file tại đường dẫn path. Kết quả trả về như sau:

FPT Polytechnic

Kết quả này tương ứng với hệ thống files-folders trong window:

FPT Polytechnic

Có thể duyệt các folders và files trong một thư mục bất kỳ sử dụng method Files.walk(path). Xem ví dụ sau:

FPT Polytechnic

Đoạn mã này sẽ in ra các files và folders trong thư mục truyền vào (tham số 4 truyền vào thể hiện mức độ 4 cấp của hệ thống files-folders tính từ thư mục truyền vào – trường hợp này là thư mục gốc). Kết quả in ra:

FPT Polytechnic

Vì kết quả trả về của method walk(…) là Stream<Path> nên rất dễ dàng để lọc, tìm kiếm dữ liệu thông qua các hàm trong stream api.

FPT Polytechnic
Sử dụng filter(…) để lọc dữ liệu
FPT Polytechnic
Cũng có thể dung find(…) để tìm kiếm
FPT Polytechnic
Hoặc chỉ tìm kiếm các folders

Đọc – ghi dữ liệu

Paths và Files là các lớp tiện ích, cung cấp rất nhiều các phương thức giúp làm việc hiệu quả với folders và files.

Chương trình sau đọc file và in ra màn hình toàn bộ nội dung:

FPT Polytechnic

Nếu file rất lớn, ví dụ hang triệu dòng thì khi đó dùng phương thức lines(…) sẽ trả về stream<>, lúc này đọc sẽ hiệu quả hơn:

FPT Polytechnic

Hoặc cũng có thể kết hợp với map(), filter():
FPT Polytechnic

Ghi ra file cũng vô cùng đơn giản:FPT Polytechnic

 

Hãy thử sử dụng package mới này, dùng các methods trong Paths, Files và so sánh với cách truyền thống trước đây xem có hiệu quả hơn không nhé. Chúc các bạn thành công!

Giảng viên Nguyễn Quang Huy
Bộ môn Ứng dụng phần mềm
Trường Cao đẳng FPT Polytechnic cơ sở Hà Nội

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.