Khi mình vừa mới học java mỗi khi cần xử lý tập tin thì mình mới bắt đầu search google kiểu “Đọc file, ghi file trong java”. Điều mình cảm thấy hoang moang là có rất nhiều cách để đọc file, mình tiến hành thử từng cách và cách nào cũng được? wtf, cho nhiều quá chi vậy? Giờ nhìn lại ngày xưa mới thấy buồn cười vì lúc đó học kiểu đụng tới đâu làm tới đó mà không hiểu bản chất.
Note: Java I/O không chỉ đọc và ghi dữ liệu với file không nhé, nó còn có thể đọc ghi từ nhiều nguồn khác như là network, file, memory etc.
Stream trong IO
Stream trong Java I/O được hiểu là một luồng dữ liệu, bạn có thể đọc hoặc ghi dữ liệu từ stream. Stream sẽ đảm nhận trách nhiệm kết nối với dữ liệu nguồn(đọc data) hoặc data đích(ghi data). Các dữ liệu được đọc ghi trong stream có thể là byte hoặc character.
Tính năng của Java IO
Java cung cấp rất nhiều subclass kế từ InputStream, OutputStream, Reader, Writer. Các class này phục vụ cho nhiều mục đích khác nhau được liệt kê dưới đây:
- File Access
- Network Access
- Internal Memory Buffer Access
- Inter-Thread Communication (Pipes)
- Buffering
- Filtering
- Parsing
- Reading and Writing Text (Readers / Writers)
- Reading and Writing Primitive Data (long, int etc.)
- Reading and Writing Object
Như vậy thì java I/O cung cấp cho chúng ta rất là nhiều tính năng phải không nào, hãy loại bỏ suy nghĩ chỉ sử dụng I/O với đọc ghi file không nhé.
Dưới đây là một bảng liệt kê các class thường sử dụng trong IO.
Tóm lược
Trên đây là cái nhìn tổng quan về java IO giúp xoá đi nỗi hoang mang khi các bạn làm việc với chúng. Mỗi class trong package java.io có mục đích sử dụng khác nhau, nếu vô tình các bạn áp dụng chúng không đúng mục đích thì sẽ gây khó khăn rất nhiều trong lúc lập trình.
Nguồn tham khảo: