Bài 33: Đọc Ghi File Theo Object Trong Java - Developer Softwares

  • twitter
  • facebook
  • google
  • rss
  • linkedin
  • dribbble
  • pinterest
Menu Search Home » học java » Java » Java co ban » java core » lap trinh java » lap trinh java core » Bài 33: Đọc ghi file theo Object trong Java Bài 33: Đọc ghi file theo Object trong Java serialization - Đặt 1 tình huống thực tế: khi ta muốn quản lý 1 danh sách sinh viên, tất nhiên sẽ là 1 dãy rất nhiều đối tượng, mỗi đối tượng sinh viên lại có nhiều thuộc tính: tên, tuổi, điểm, .v..v.. và chúng ta cần lưu toàn bộ thông tin này vào file, ngoài ra còn phải xử lý, chỉnh sửa thông tin nếu cần. Như vậy, nếu sử dụng kiến thức ở những bài trước làm điều này thì là rất khó khăn. Nhưng với phần kiến thức ở bài này thì điều đó lại trở lên cực kỳ dễ dàng. Cụ thể ở bài tập giống như tình huống giả thiết trên, chúng ta sẽ sử dụng kiểu đọc ghi object để thao thác, lưu trữ từng đối tượng lên file!- Mình sẽ viết 2 ví dụ cụ thể, với các mức độ khác nhau,từ đơn giản nhất. Nếu bạn thấy khó hiểu chỗ nào có thể bình luận phía dưới. Mọi người cùng trao đổi.**Chú ý: Để đọc ghi theo Object trong Java thì tại class Object đó ta cần đặt giao tiếp java.io.Serializable (implements Serializable)Ví dụ 1: Đọc ghi 1 đối tượng lên file theo từng object:- Khai báo 1 class SinhVien gồm 2 thuộc tính họ tên, tuổi. Tạo 1 đối tượng cụ thể sinh viên a sau đógán thông tin cho sinh viên a rồi ghi đối tượng a này xuống file "E:\\sinhvien.dat"- Mở file trên ra. Đọc file đó theo kiểu object để lấy đối tượng đó ra, (cần ép kiểu về kiểu dữ liệu của đối tượng), rồi gán nó vào đối tượng a1. In ra màn hình thông tin đối tượng a1. Code như sau: PHP: package javaandroidvn; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;class SinhVien implements Serializable { public String hoTen; public int tuoi;}public class JavaAndroidVn { public static void main(String[] args) throws IOException { SinhVien a = new SinhVien(); a.hoTen = "Vũ Văn Tường"; a.tuoi = 21; try { FileOutputStream f = new FileOutputStream("E:\\sinhvien.dat"); ObjectOutputStream oOT = new ObjectOutputStream(f); // Sử dụng để ghi file theo từng Object oOT.writeObject(a); // Ghi Object là đối tượng a xuống file oOT.close(); f.close(); } catch (IOException e) { System.out.println("Có lỗi xảy ra!"); } SinhVien a1 = new SinhVien(); //Tạo đối tượng a1 mới, để phía dưới gán bằng đối tượng ta lấy được ra từ file try { FileInputStream f = new FileInputStream("E:\\sinhvien.dat"); ObjectInputStream oIT = new ObjectInputStream(f); // Sử dụng để đọc file theo từng Object a1 = (SinhVien) oIT.readObject(); //Đọc Object đầu tiên ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng a1 oIT.close(); f.close(); } catch (IOException io) { System.out.println("Có lỗi xảy ra!"); } catch (ClassNotFoundException ex) { System.out.println("Không tìm thấy class"); } System.out.println("Thông tin sinh vien a1 đọc ra là: \nTên: "+a1.hoTen+"\nTuổi: "+a1.tuoi); }} Ví dụ 2: Đọc ghi 2 đối tượng lên file theo từng object. Các thuộc tính bài này để private:(Qua ví dụ này, và kết hợp bài sau, mình sẽ giới thiệu cách đọc ghi 1 danh sách các đối tượng lên file, giúp việc quản lý danh sách các đối tượng dễ dàng hơn!) PHP: package javaandroidvn; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;class SinhVien implements Serializable { private String hoTen; private int tuoi; public String getHoTen() { return hoTen; } public void setHoTen(String hoTen) { this.hoTen = hoTen; } public int getTuoi() { return tuoi; } public void setTuoi(int tuoi) { this.tuoi = tuoi; }}public class JavaAndroidVn { public static void main(String[] args) throws IOException { SinhVien a = new SinhVien(); a.setHoTen("Vũ Văn T"); a.setTuoi(21); SinhVien b = new SinhVien(); b.setHoTen("Nguyễn Văn A"); b.setTuoi(22); try { FileOutputStream f = new FileOutputStream("E:\\sinhvien.dat"); ObjectOutputStream oOT = new ObjectOutputStream(f); // Sử dụng để ghi file theo từng Object oOT.writeObject(a); // Ghi Object là đối tượng a xuống file oOT.writeObject(b); oOT.close(); f.close(); } catch (IOException e) { System.out.println("Có lỗi xảy ra!"); } SinhVien a1 = new SinhVien(); //Tạo đối tượng a1 mới, để phía dưới gán bằng đối tượng ta lấy được ra từ file SinhVien b1 = new SinhVien(); //Tạo đối tượng b1 mới, để phía dưới gán bằng đối tượng ta lấy được ra từ file try { FileInputStream f = new FileInputStream("E:\\sinhvien.dat"); ObjectInputStream oIT = new ObjectInputStream(f); // Sử dụng để đọc file theo từng Object a1 = (SinhVien) oIT.readObject(); //Đọc Object đầu tiên ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng a1 b1 = (SinhVien) oIT.readObject(); //Đọc Object tiếp theo, ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng b1 oIT.close(); f.close(); } catch (IOException io) { System.out.println("Có lỗi xảy ra!"); } catch (ClassNotFoundException ex) { System.out.println("Không tìm thấy class"); } System.out.println("Thông tin sinh vien a1 đọc ra là: \nTên: " + a1.getHoTen() + "\nTuổi: " + a1.getTuoi()); System.out.println("Thông tin sinh vien b1 đọc ra là: \nTên: " + b1.getHoTen() + "\nTuổi: " + b1.getTuoi()); }} [IMG] Bài tập về nhà::DClass thẻ thư viện có các thuộc tính: mã thẻ, tên sinh viên, số sách mượn. Tạo ra 3 đối tượng thẻ thư viện, gán giá trị nhập vào từ bàn phím. Ghi lại thông tin 3 đối tượng này xuống file theo kiểu object rồi đọc file đó, đọc dữ liệu các đối tượng từ trong file vừa ghi, in ra màn hình! Được đăng bởi itvovantien Nhãn: học java, Java, Java co ban, java core, lap trinh java, lap trinh java core vào lúc 12:04:00 AM
Next
Newer Post
Previous
Older Post

1 blogger-facebook:

  1. nhdongNovember 17, 2014 at 7:55 AM

    thanks b, bài viết dễ hiểu lắm, cho mình hỏi là đọc đến hết file như thế nào vậy

    ReplyDeleteReplies
      Reply
Add commentLoad more... Subscribe to: Post Comments (Atom)

Translate

Like Facebook

Like Facebook

Bài đăng phổ biến

  • Bài 35: ArrayList trong Java (2)
  • Bài 15: Phương thức setter và getter trong Java
  • Bài 36: Sắp xếp các đối tượng trong ArrayList
  • Bài 14: Phương thức (method) trong Java
  • Bài 16: Tính kế thừa (inheritance) trong Java
  • Bài 34: ArrayList trong Java (1)
  • Bài 37: HashMap trong Java
  • Bài 21: Final class, abstract class và interface trong Java
  • Bài 24: String và một số phương thức của lớp String trong Java
  • Bài 13: Class trong Java (tiếp)

Commnent

Labels

  • Adminstrator
  • Adsense
  • Android
  • backlink
  • blog
  • C++
  • Cá nhân
  • chinh sua hinh anh
  • Code
  • công cụ
  • công cụ code
  • cpc
  • Demo
  • Design
  • designer
  • designer viet nam
  • Developer Android Example
  • developer c++
  • Điểm
  • Example
  • free tai lieu
  • Game C/C++
  • GialapMac
  • Góc Học Tập
  • Google
  • Google Adsense
  • hinh anh
  • học android
  • học java
  • HoclaptrinhiOS
  • IDE
  • Java
  • Java co ban
  • java core
  • kiếm tiền online
  • Kiếm tiền online Youtube
  • lap trinh c++
  • lap trinh java
  • lap trinh java core
  • lap trinh thpt
  • LaptrinhiOS
  • Lien he
  • Mac
  • MacOX
  • miễn phí tài liệu
  • MMO
  • Object-C
  • Pascal
  • Phần Mềm
  • Photoshop
  • PHP
  • pr
  • pr6
  • Profile
  • rút tiền adssense
  • seo
  • Share Acc Vip
  • tải tài liệu miễn phí
  • Tai tailieu.vn free
  • tailieu.vn
  • tăng view
  • thanh toan adsense
  • thanh toán adsense
  • Thông tin cá nhân
  • thpt
  • Thu thuat
  • Thủ Thuật
  • thu thuat c++
  • Thu thuat cho windows
  • Thu thuat windows
  • thu thuat youtube
  • Tin Tức
  • Video C++
  • vietdesigner
  • view tăng
  • website
  • windows
  • windows 8
  • windows 8.1
  • youtube

Google Analytics

BackLinks

  • Van Tien
  • itvovantien.com

Contact Form

Name Email * Message *   Top

Từ khóa » Ghi File đối Tượng Trong Java