CodeGym
Khuyến mãi
Học tập
Khóa học
Bài tập
Khảo sát & Bài kiểm tra
Trò chơi
Trợ giúp
Lịch
Cộng đồng
Người dùng
Diễn đàn
Trò chuyện
Bài viết
Câu chuyện thành công
Hoạt động
Đánh giá
Gói đăng ký
Chủ đề sáng

Bài học

  • Đánh giá
  • Về chúng tôi
Bắt đầu
Bắt đầu học
Bắt đầu học ngay
  • Tiến độ của tôi
  • Khóa học
  • Bản đồ Quest
  • Bài học
  • Quyền và truy cập hệ thống tệp

    JAVA 25 SELF
    Cấp độ 38,Bài học 3
    Trong bài giảng này, chúng ta phân tích cách HĐH quản lý quyền truy cập (POSIX và ACL trên Windows), vì sao trong Java phát sinh ngoại lệ AccessDeniedException, cách và khi nào nên dùng các kiểm tra Files.isReadable(), Files.isWritable(), Files.isExecutable(), và TOCTOU nguy hiểm ra sao. Trình bày mẫu “ghi an toàn”: tệp tạm + di chuyển nguyên tử qua StandardCopyOption.ATOMIC_MOVE, xử lý lỗi đúng cách bằng try- catch và ghi log ( java.util.logging). Cuối bài — các lời khuyên thực tế và lỗi thường gặp.
    Có sẵn
  • Best practices khi làm việc với tệp

    JAVA 25 SELF
    Cấp độ 38,Bài học 4
    Hướng dẫn thực hành về cách làm việc với hệ thống tệp trong Java một cách tin cậy và an toàn: xử lý ngoại lệ đúng cách ( try/ catch, phản ứng riêng đối với IOException, AccessDeniedException), sử dụng cẩn trọng API Files/ Path và bản sao dự phòng ( Files.copy với StandardCopyOption.REPLACE_EXISTING), tệp tạm ( Files.createTempFile), kiểm soát tính toàn vẹn ( MessageDigest.getInstance( "SHA-256")), cũng như giảm thiểu cửa sổ TOCTOU và áp dụng try-with-resources ở mọi nơi. Bạn sẽ biết vì sao catch rỗng nguy hiểm, cách làm việc với quyền truy cập ( File.canRead()/ File.canWrite()) và rủi ro của đường dẫn tương đối như File( "data.txt").
    Có sẵn
  • NIO2: Files, Paths, Files.walk: duyệt hệ thống tệp

    JAVA 25 SELF
    Cấp độ 39,Bài học 0
    Phân tích sâu API tệp NIO2: làm việc với đường dẫn qua Path và các tiện ích Files, duyệt cây thư mục bằng Files.walk và interface FileVisitor, lọc và tìm kiếm, tính kích thước và sao chép, try-with-resources và xử lý IOException. So sánh với File-API cũ và xem các lỗi thường gặp khi làm việc với luồng Stream<Path>.
    Có sẵn
  • Các lớp File, Path, Files: lấy thông tin về tệp

    JAVA 25 SELF
    Cấp độ 39,Bài học 1
    Tổng quan ngắn gọn và thực tiễn về API làm việc với tệp: từ cựu binh File đến Path và Files hiện đại trong gói java.nio.file. Chúng ta sẽ xem cách kiểm tra sự tồn tại, loại (tệp/thư mục), kích thước, đường dẫn, các thuộc tính cơ bản và quyền. Chúng tôi sẽ chỉ ra khi nào và tại sao nên ưu tiên Path/ Files, cách xử lý IOException đúng cách và những lỗi thường gặp trong thực tế.
    Có sẵn
  • Globbing/PathMatcher, DirectoryStream.Filter

    JAVA 25 SELF
    Cấp độ 39,Bài học 2
    Bài thực hành về chọn lọc tệp trong NIO2: so sánh glob và regex, học cách sử dụng PathMatcher, lọc nội dung thư mục qua Files.newDirectoryStream và DirectoryStream.Filter<Path>, cũng như tìm kiếm đệ quy với Files.walk() và chọn lọc có điều kiện với Files.find() và BiPredicate<Path, BasicFileAttributes>. Thảo luận các sắc thái về mẫu ( "**/*.java", "*.{png,jpg}"), hiệu năng và các lỗi điển hình khi đóng tài nguyên.
    Có sẵn
  • FileVisitor — duyệt hệ thống tệp và các thao tác đệ quy

    JAVA 25 SELF
    Cấp độ 39,Bài học 3
    Trong bài giảng này, chúng ta sẽ tìm hiểu cách duyệt hệ thống tệp nâng cao trong Java: sự khác nhau giữa cách duyệt dạng luồng với Files.walk() và API hướng sự kiện Files.walkFileTree(), hợp đồng FileVisitor<T> hoạt động ra sao và bộ chuyển đổi tiện lợi SimpleFileVisitor<T>, các quyết định mà FileVisitResult trả về ( CONTINUE, SKIP_SUBTREE, SKIP_SIBLINGS, TERMINATE), cách thực hiện đúng việc xóa đệ quy, tính kích thước, tìm theo mẫu/phần mở rộng và xử lý lỗi, cũng như những lỗi thường gặp trong thực tế.
    Có sẵn
  • Lấy và thay đổi thuộc tính tệp

    JAVA 25 SELF
    Cấp độ 39,Bài học 4
    Hướng dẫn thực hành làm việc với siêu dữ liệu của tệp qua API java.nio.file.attribute: đọc thuộc tính cơ bản bằng Files.readAttributes và BasicFileAttributes, tìm hiểu các thuộc tính mở rộng POSIX/ DOS qua PosixFileAttributes và DosFileAttributes, thay đổi thời gian và quyền ( FileTime, PosixFilePermissions, Files.setLastModifiedTime, Files.setAttribute). Kèm kiểm tra quyền truy cập ( Files.isReadable/ isWritable/ isExecutable), khác biệt đa nền tảng ( dos:* vs posix:*) và lỗi thường gặp.
    Có sẵn
  • Tạo và xóa tệp và thư mục

    JAVA 25 SELF
    Cấp độ 40,Bài học 0
    Giới thiệu thực hành về API tệp của Java: làm việc với java.nio.file, tạo tệp và thư mục bằng Files.createFile, Files.createDirectory và Files.createDirectories, xóa — với Files.delete và Files.deleteIfExists. Cùng bàn về kiểm tra tồn tại ( Files.exists, Path.of), các ngoại lệ thường gặp ( FileAlreadyExistsException, NoSuchFileException, DirectoryNotEmptyException, IOException) và xóa an toàn, bao gồm cả đệ quy cho thư mục không rỗng.
    Có sẵn
  • Sao chép và di chuyển tệp và thư mục

    JAVA 25 SELF
    Cấp độ 40,Bài học 1
    Cách sao chép, di chuyển và đổi tên tệp và thư mục bằng Files.copy và Files.move từ gói java.nio.file; nên dùng những tùy chọn nào ( StandardCopyOption.REPLACE_EXISTING, COPY_ATTRIBUTES, di chuyển nguyên tử), sự khác nhau giữa copy và move, và cách xử lý ngoại lệ đúng cách: FileAlreadyExistsException, AccessDeniedException, AtomicMoveNotSupportedException, NoSuchFileException. Kèm theo các mẹo thực tế và bảng về các phương thức và tùy chọn chính.
    Có sẵn
  • Các thao tác hàng loạt trên tệp

    JAVA 25 SELF
    Cấp độ 40,Bài học 2
    Thực hành làm việc với tệp qua NIO.2: cách duyệt thư mục bằng Files.list và Files.walk, lọc luồng đường dẫn bằng Stream<Path> và các thao tác filter, sorted, limit. Tác vụ hàng loạt: sao chép ( Files.copy), xóa ( Files.delete), đổi tên ( Files.move) với xử lý lỗi an toàn trong vòng lặp và chú ý hiệu năng khi duyệt đệ quy. Bảng các phương thức chính và mục “Lỗi thường gặp” sẽ giúp tránh các cạm bẫy.
    Có sẵn
  • Làm việc với tệp và thư mục tạm thời

    JAVA 25 SELF
    Cấp độ 40,Bài học 3
    Trong bài giảng này, chúng ta tìm hiểu cách tạo và dọn dẹp tài nguyên tạm một cách an toàn: tệp qua Files.createTempFile và thư mục qua Files.createTempDirectory, vị trí mặc định của chúng và cách chỉ định thư mục riêng. Chúng tôi sẽ trình bày cách xóa đáng tin cậy bằng Files.delete/ Files.deleteIfExists, khi nào nên dùng phương thức legacy File.deleteOnExit(), cách lấy đường dẫn tới thư mục tạm của hệ thống qua System.getProperty( "java.io.tmpdir") và vì sao quan trọng sử dụng cấu trúc try- finally để đảm bảo dọn dẹp. Cuối cùng — mẹo thực tế và lỗi thường gặp.
    Có sẵn
  • Theo dõi thay đổi trong hệ thống tệp: WatchService

    JAVA 25 SELF
    Cấp độ 40,Bài học 4
    Trong bài giảng này, chúng ta phân tích API theo dõi hệ thống tệp của NIO.2 — WatchService: cách lấy service, đăng ký thư mục qua Path.register(...), các sự kiện có sẵn ( ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY) và cách tổ chức vòng lặp xử lý ( WatchService.take() → key.pollEvents() → key.reset()). Chúng ta sẽ bàn về các hạn chế (không theo dõi đệ quy theo mặc định), khác biệt trên Windows/Linux/macOS, ví dụ ứng dụng thực tế và lỗi phổ biến.
    Có sẵn
  • 1
  • ...
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...
  • 30
Học
  • Đăng ký
  • Khóa học Java
  • Trợ giúp bài tập
  • Bảng giá
  • Cú pháp Java
Cộng đồng
  • Người dùng
  • Bài viết
  • Diễn đàn
  • Trò chuyện
  • Câu chuyện thành công
  • Hoạt động
  • Chương trình giới thiệu
Công ty
  • Về chúng tôi
  • Liên hệ
  • Đánh giá
  • Phòng báo chí
  • CodeGym cho EDU
  • Câu hỏi thường gặp
  • Hỗ trợ
CodeGymCodeGym là một khóa học trực tuyến để học lập trình Java từ đầu. Khóa học này là cách hoàn hảo để nắm vững Java cho người mới bắt đầu. Nó chứa 1200+ bài tập với kiểm tra ngay lập tức và phạm vi lý thuyết cơ bản cần thiết về Java. Để giúp bạn thành công trong học tập, chúng tôi đã triển khai một bộ tính năng tạo động lực: bài kiểm tra, dự án lập trình, nội dung về phương pháp học hiệu quả, và hỗ trợ sự nghiệp lập trình viên Java.
Theo dõi chúng tôi
Ngôn ngữ giao diện
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский
Vietnamese
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym
MastercardVisa
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym