ngay-gio-trong-java

Cách đọc ghi file trong java

Chào các bạn, hẳn thì trong quá trình học tập các bạn cũng đã gặp vấn đề đọc ghi dữ liệu từ file rồi phải không ạ! Chính vì thế hôm nay mình quyết định viết một bài để hướng dẫn các bạn cách đọc ghi file trong Java.

Bài viết mình được chia làm hai phần chính đó là:

  • Đọc dữ liệu đầu vào từ file.
  • Ghi dữ liệu từ chương trình ra file.

Đọc dữ liệu đầu vào từ file trong Java.

Ở đây mình đã chuẩn bị một file dữ liệu đầu vào như dưới:

Cách đọc ghi file trong java
File dữ liệu

Lưu ý: Các bạn phải lưu file dưới định dạng unicode nhé!

Oke, bây giờ chúng ta sẽ viết một chương trình dùng để đọc dữ liệu từ file có tên data.txt như trên.

Chương trình như bên dưới:

 

Sau khi chạy chương trình thì ta sẽ có kết quả sau:

Cách đọc ghi file trong java
Kết quả khi chạy chương trình

Giờ mình sẽ giải thích từng chi tiết cho các bạn nha:

  • FILE_URL: Chính là đường dẫn đến tệp, ở đây mình dùng đường dẫn tuyệt đối nên nó hơi dài xí.
  • File: Lớp này sẽ lấy file dữ liệu từ đường dẫn ở trên, nếu đường dẫn không hợp lệ thì nó sẽ trả ra ngoại lệ đó nha!
  • InputStream: Khởi tạo một inputStream từ file ở trên chuẩn bị cho việc đọc file.
  • InputStreamReader: Từ inputStream ở trên tạo ra một đối tượng có thể đọc được. Ở đây là chỉ đọc được từng kí tự mà thôi nhé !
  • BufferedReader: Từ inputStreamRead cũng tạo ra một đối tượng có thể đọc được.

Để thấy khác nhau thì các bạn có thể xem đoạn code dưới đây:

 

Và kết quả khi chạy chương trình:

File java
Đọc file trọng java

Chà rườm rà nhỉ ? Vậy sự khác nhau giữa chúng là gì ? Lớp BufferedReader trong java được sử dụng để đọc văn bản từ một input stream dựa trên các ký tự. Nó có thể được sử dụng để đọc dữ liệu theo dòng bằng phương thức readLine(). Nó giúp hiệu suất nhanh. Vậy nên mình khuyên các bạn nên sử dụng lớp BufferedReader để đọc file.

Ghi dữ liệu từ chương trình ra file trong Java.

Dưới đây là chương trình mình ghi dữ liệu ra file data.txt:

 

Sau khi chạy chương trình xong thì kết quả sẽ như sau:

Đọc file java
Ghi file

Để mình nói rõ phương thức flush() cho các bạn một chút. Trong một số trường hợp chương trình quá nhanh, đến nỗi nó chưa ghi dữ liệu vào file kịp thì chương trình đã kết thúc. Để tránh điều này thì các bạn phải sử dụng phương thức flush().

Bây giờ bạn thử chạy lại chương trình một lần nữa, bạn sẽ thấy dữ liệu trong file vẫn không đổi. Trong trường hợp bạn muốn ghi tiếp dữ liệu vào cuối file thì phải làm sao ?

Đây là kết quả khi chạy chương trình thêm một lần nữa:

Đọc ghi file java
Đọc ghi file java

Oke, bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã chú ý theo dõi !

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments