CodeGym
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
  • Đọc tệp văn bản: theo dòng, toàn bộ

    JAVA 25 SELF
    Cấp độ 36,Bài học 1
    Trong bài giảng này, chúng ta phân tích cách đọc theo dòng với BufferedReader và cách đọc toàn bộ bằng Files.readAllLines/ Files.readString, chọn bộ đệm (ví dụ, 8192 byte), đóng tài nguyên an toàn bằng try-with-resources, cũng như làm việc với mã hóa ( StandardCharsets.UTF_8). Đưa ra các ví dụ thực tế (đếm dòng, tìm trong log, phân tích cấu hình) và các lỗi thường gặp (ví dụ, OutOfMemoryError khi tải toàn bộ các tệp lớn).
    Có sẵn
  • Đọc và ghi tệp nhị phân: InputStream, OutputStream

    JAVA 25 SELF
    Cấp độ 36,Bài học 2
    Phân tích sự khác biệt giữa tệp văn bản và tệp nhị phân, các luồng byte cơ bản InputStream/ OutputStream và các hiện thực dành cho tệp của chúng ( FileInputStream, FileOutputStream). Viết mã sao chép có bộ đệm, thảo luận tốc độ đọc từng byte so với theo khối, ghi mảng byte bằng write(), các lưu ý về try-with-resources, lựa chọn kích thước bộ đệm 4– 16 KB, cách dùng an toàn readAllBytes() và các lỗi thường gặp (ví dụ, dùng FileReader/ FileWriter cho dữ liệu nhị phân).
    Có sẵn
  • DataInputStream, DataOutputStream: làm việc với kiểu dữ liệu nguyên thủy

    JAVA 25 SELF
    Cấp độ 36,Bài học 3
    Trong bài giảng này, chúng ta xem xét nhập/xuất nhị phân trong Java bằng DataInputStream và DataOutputStream: cách ghi và đọc các kiểu nguyên thủy ( int, double, boolean) và chuỗi ( String) bằng các phương thức writeXXX/ readXXX, vì sao thứ tự quan trọng, cách lưu mảng, khi nào nên thêm BufferedInputStream/ BufferedOutputStream và những lỗi điển hình dẫn đến IOException hoặc EOFException.
    Có sẵn
  • Làm việc với try-with-resources: đóng tài nguyên tự động

    JAVA 25 SELF
    Cấp độ 36,Bài học 4
    Phân tích cách hiện đại để làm việc an toàn với tài nguyên trong Java — try-with-resources: so sánh với mẫu cũ try/ catch/ finally + close(), yêu cầu với kiểu (triển khai AutoCloseable hoặc Closeable), cú pháp try(...){...}, thứ tự đóng, ngoại lệ “bị kìm nén” qua getSuppressed(), ví dụ với luồng vào/ra và tài nguyên tùy chỉnh, cùng các lời khuyên và lỗi thường gặp.
    Có sẵn
  • Mã hóa ký tự là gì và tại sao cần nó

    JAVA 25 SELF
    Cấp độ 37,Bài học 0
    Cùng tìm hiểu mã hóa ký tự là gì và vì sao thiếu nó thì văn bản máy tính biến thành “mojibake”. So sánh các bộ mã phổ biến: UTF-8, Windows-1251, ASCII, Unicode/ UTF-16. Thảo luận biểu diễn chuỗi bên trong JVM ( String trong Unicode) và nhập/xuất đúng cách: chỉ định rõ mã hóa qua InputStreamReader/ OutputStreamWriter và StandardCharsets.UTF_8. Cuối cùng — ví dụ thực tế và lỗi thường gặp.
    Có sẵn
  • Các bảng mã chính: UTF-8, UTF-16, ISO-8859-1

    JAVA 25 SELF
    Cấp độ 37,Bài học 1
    Phân tích ba bảng mã cơ bản mà nhà phát triển Java thường gặp: UTF-8 là gì (tiêu chuẩn cho web và phần lớn định dạng), định dạng nội bộ của chuỗi trong JVM hoạt động ra sao — UTF-16 (với cặp surrogate và BOM), và vì sao ISO-8859-1 vẫn còn xuất hiện. Giải thích khả năng tương thích với ASCII, dung lượng tính theo byte trên mỗi ký tự, và trình bày cách làm việc đúng với bảng mã trong Java bằng StandardCharsets, Files.write, Files.readString, Paths.get. Cuối cùng — các lỗi điển hình: đọc/ghi sai, bảng mã hệ thống “mặc định”, nhầm lẫn giữa UTF-16/ UTF-8.
    Có sẵn
  • Thiết lập mã hóa khi đọc/ghi tệp

    JAVA 25 SELF
    Cấp độ 37,Bài học 2
    Cách tránh “chữ loằng ngoằng” và làm cho văn bản hiển thị giống nhau trên mọi máy: phân tích bộ mã hệ thống ( "file.encoding"), cách làm việc với Charset và các hằng số StandardCharsets, đọc/ghi qua Files . newBufferedReader và Files . newBufferedWriter, sử dụng try-with-resources, xem các bộ mã sẵn có và làm theo các thực hành tốt (mặc định — "UTF-8"). Cuối cùng — các lỗi thường gặp và cách tránh chúng.
    Có sẵn
  • Các vấn đề lệch mã hóa, lỗi thường gặp

    JAVA 25 SELF
    Cấp độ 37,Bài học 3
    Trong bài giảng này, chúng ta phân tích “mojibake” (ký tự rác), mất ký tự ( ?), các ngoại lệ như MalformedInputException, nguyên nhân (không khớp Windows-1251/ UTF-8, mã hóa hệ thống “mặc định”, BOM), cách chẩn đoán ( file.encoding) và thực hành tốt nhất: chỉ định rõ Charset, sử dụng Files/ BufferedReader với StandardCharsets, tránh dùng FileReader/ FileWriter, các lưu ý cho XML/ JSON và BOM.
    Có sẵn
  • Tái mã hóa tệp: đọc ở một bảng mã, ghi ở bảng mã khác

    JAVA 25 SELF
    Cấp độ 37,Bài học 4
    Cách đọc văn bản từ tệp ở một bảng mã và ghi sang bảng mã khác bằng các lớp từ java.nio.file và java.io: dùng Files.newBufferedReader/ Files.newBufferedWriter hoặc InputStreamReader/ OutputStreamWriter, chỉ định Charset cần thiết, áp dụng try-with-resources và tránh bẫy mã hệ thống. Quy trình từng bước, ví dụ Windows-1251 → UTF-8, các lưu ý (BOM, tệp lớn, ngoại lệ) và lỗi thường gặp.
    Có sẵn
  • IOException và FileNotFoundException: xử lý lỗi

    JAVA 25 SELF
    Cấp độ 38,Bài học 0
    Cách tổ chức hệ phân cấp ngoại lệ I/O trong Java, sự khác nhau giữa IOException và lớp con của nó FileNotFoundException, khi nào chúng phát sinh và cách xử lý đúng. Chúng ta sẽ phân tích thứ tự các khối catch, thực hành đọc/ghi tệp, mẹo ghi log, cũng như bảng tóm tắt các lỗi thường gặp nhất. Sẽ đề cập đến checked exceptions, các từ khóa try, catch, finally, throws và mẫu try-with-resources.
    Có sẵn
  • Kiểm tra sự tồn tại của tệp và thư mục

    JAVA 25 SELF
    Cấp độ 38,Bài học 1
    Cách kiểm tra trong Java xem tệp hoặc thư mục có tồn tại hay không: lớp File với các phương thức exists(), isFile(), isDirectory() và cách tiếp cận hiện đại NIO qua Path và Files — Files.exists(), Files.isRegularFile(), Files.isDirectory(). Thảo luận về vấn đề TOCTOU và vì sao kiểm tra không thay thế cho xử lý lỗi: ngay cả sau exists() bạn vẫn có thể gặp FileNotFoundException hoặc AccessDeniedException, vì vậy hãy luôn dùng các khối try và nếu có thể thì dùng try-with-resources. Thêm thực hành: đọc tệp khi có sẵn, tạo thư mục qua Files.createDirectory() và Files.createDirectories(), làm việc với đường dẫn tương đối và tuyệt đối.
    Có sẵn
  • Xử lý tệp bị hỏng, khôi phục dữ liệu

    JAVA 25 SELF
    Cấp độ 38,Bài học 2
    Cách nhận biết “tệp bị hỏng” qua các ngoại lệ ( EOFException, MalformedInputException, ZipException, StreamCorruptedException), phải làm gì khi định dạng không khớp, và nên dùng những chiến lược khôi phục nào: ghi nhật ký và thông báo cho người dùng, đọc một phần cho đến khi gặp lỗi, bản sao lưu, kiểm tra tổng (checksum) ( SHA-256). Thực hành đọc đến EOF, làm việc đúng với mã hóa và phân tích các lỗi điển hình (xác thực, try-with-resources, ghi đè cẩn thận).
    Có sẵn
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • ...
  • 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