Khóa học free Bài 33: Đọc ghi file theo Object trong Java

Thảo luận trong 'Java cơ bản' bắt đầu bởi Tiasangmoi92, 22/8/13.

  1. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Lượt xem: 31,540
    /* Bài viết thuộc loạt bài hướng dẫn trong "Khóa Học Lập Trình Java Miễn Phí"
    trên diễn đàn Android.Vn, bạn có thể vào đây đọc

    để hiểu hơn về khóa học và tham gia ngay cùng mọi người;) */

    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[] argsthrows 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 = (SinhVienoIT.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[] argsthrows 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 = (SinhVienoIT.readObject(); //Đọc Object đầu tiên ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng a1
                
    b1 = (SinhVienoIT.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à::D
    Class 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!

    (Chú ý: Các bạn nên tự giác làm bài tập, hoàn thiện rồi đăng lên, các bài bạn đã làm, nên để code trong thẻ code - chọn thẻ PHP cho rõ ràng và để ẩn code trong thẻ ẩn spoiler, để khi click vào mới hiện code lên , trước khi thử sức tự làm, bạn không nên nhìn code của các bạn khác đã đăng nhé;))

    [​IMG]

    My Facebook: https://www.facebook.com/tiasangmoi

    Bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: Android.Vn
    object java, đọc ghi file kiểu object java, ghi file kiểu object, đọc file kiểu object, khóa học java, khóa học java online
    vinatoonVjrus.HT thích bài này.
  2. dienlh93

    dienlh93 New Member

    thank rất nhiều! thất sự về mấy cái nhập file trong C và C++ rất khó hiểu và mình đã ko học được! nhưng sang java cũng ko nghĩ là nó sẽ đơn giản hơn!
    NHATTATiasangmoi92 thích bài này.
  3. HaiHack

    HaiHack Member

    Bài tập này không khác ví dụ mẫu là mấy
    Show Spoiler

    PHP:
    class TheThuVien implements Serializable {
     
        private 
    String ma_the;
        private 
    String ten_sv;
        private 
    int so_sach_muon;
     
        public 
    TheThuVien(String ma_theString ten_svint so_sach_muon) {
            
    this.ma_the ma_the;
            
    this.ten_sv ten_sv;
            
    this.so_sach_muon so_sach_muon;
        }
       
        public 
    String getMa_the() {
            return 
    ma_the;
        }
     
        public 
    String getTen_sv() {
            return 
    ten_sv;
        }
     
        public 
    int getSo_sach_muon() {
            return 
    so_sach_muon;
        }
     
    }
     
    public class 
    baitap2 {
     
        public static 
    void main(String[] args) {
            
    TheThuVien a = new TheThuVien("a1""Luffy",1);
            
    TheThuVien b = new TheThuVien("a2""Zoro"2);
            
    TheThuVien c = new TheThuVien("a3""Nami"3);
           
            try {
                
    FileOutputStream f = new FileOutputStream("E:\\TheThuVien.dat");
                
    ObjectOutputStream oos = new ObjectOutputStream(f);
                
    oos.writeObject(a);
                
    oos.writeObject(b);
                
    oos.writeObject(c);
                
    f.close();
                
    oos.close();
            } catch (
    FileNotFoundException ex) {
                
    System.out.println(ex);
            } catch (
    IOException e) {
                
    System.out.println(e);
            }
     
            try {
                
    FileInputStream f = new FileInputStream("E:\\TheThuVien.dat");
                
    ObjectInputStream ois = new ObjectInputStream(f);
                
    = (TheThuVienois.readObject();
                
    = (TheThuVienois.readObject();
                
    = (TheThuVienois.readObject();
                
    f.close();
                
    ois.close();
            } catch (
    ClassNotFoundException IOException ex) {
                
    System.out.println(ex);
            }
     
            
    System.out.println("Thong tin the thu vien thu nhat:\nMa The: " a.getMa_the()
                    + 
    "\nTen: " a.getTen_sv() + "\nSo sach muon: " a.getSo_sach_muon() + "\n----------");
            
    System.out.println("Thong tin the thu vien thu hai:\nMa The: " b.getMa_the()
                    + 
    "\nTen: " b.getTen_sv() + "\nSo sach muon: " b.getSo_sach_muon() + "\n----------");
            
    System.out.println("Thong tin the thu vien thu ba:\nMa The: " c.getMa_the()
                    + 
    "\nTen: " c.getTen_sv() + "\nSo sach muon: " c.getSo_sach_muon() + "\n----------");
     
        }
    }
  4. Martimillion

    Martimillion New Member

    cảm ơn rất nhiều
  5. Show Spoiler

    Mã:
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.Scanner;
     
    class SINHVIEN implements Serializable
    {
        private String tensv;
        private int mathe;
        private int sosachmuon;
        public String getTensv() {
            return tensv;
        }
        public void setTensv(String tensv) {
            this.tensv = tensv;
        }
        public int getMathe() {
            return mathe;
        }
        public void setMathe(int mathe) {
            this.mathe = mathe;
        }
        public int getSosachmuon() {
            return sosachmuon;
        }
        public void setSosachmuon(int sosachmuon) {
            this.sosachmuon = sosachmuon;
        }
     
    }
    public class BTBai33 {
        public static void main(String[]args){
            SINHVIEN a=new SINHVIEN();
            SINHVIEN b=new SINHVIEN();
            SINHVIEN c=new SINHVIEN();
            System.out.println("Nhap TT SV a ");
            nhaptt(a);
            System.out.println("Nhap TT SV b ");
            nhaptt(b);
            System.out.println("NHap TT SV c ");
            nhaptt(c);
            //ghi file
            ghifile(a, b, c);
            docfile(a, b, c);
        }
        public static void nhaptt(SINHVIEN a)
        {
        System.out.println("Nhap thông tin sinh vien :  " );
            Scanner in=new Scanner(System.in);
                System.out.println("Nhap ma the :");
                a.setMathe(in.nextInt());
                in.nextLine();
                System.out.println("Nhap ho ten:");
                a.setTensv(in.nextLine());
                System.out.println("Nhap so sach muon:");
                a.setSosachmuon(in.nextInt());
                in.nextLine(); 
            }
        public static void ghifile(SINHVIEN a,SINHVIEN b,SINHVIEN c)
        {
              try {
                  FileOutputStream f = new FileOutputStream("D:\\sinhvien.txt");
                  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.writeObject(c);
                  oOT.close();
                  f.close();
              } catch (IOException e) {
                  System.out.println("Có lỗi xảy ra!");
              }
     
        }
        public static void docfile(SINHVIEN a,SINHVIEN b,SINHVIEN c)
        {
            SINHVIEN a1 = new SINHVIEN();
            SINHVIEN b1 = new SINHVIEN();
            SINHVIEN c1 = new SINHVIEN();
          try {
              FileInputStream f = new FileInputStream("D:\\sinhvien.txt");
              ObjectInputStream oIT = new ObjectInputStream(f);
              a1 = (SINHVIEN) oIT.readObject();
              b1 = (SINHVIEN) oIT.readObject();
              c1 = (SINHVIEN) oIT.readObject();
              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à:  " );
          System.out.println(" Ma the:  "+a.getMathe() );
          System.out.println(" Ho ten:  "+a.getTensv() );
          System.out.println(" So sach muon:  "+a.getSosachmuon() );
          System.out.println("Thông tin sinh vien b1 đọc ra là:  " );
          System.out.println(" Ma the:  "+b.getMathe() );
          System.out.println(" Ho ten:  "+b.getTensv() );
          System.out.println(" So sach muon:  "+b.getSosachmuon() );
          System.out.println("Thông tin sinh vien c1 đọc ra là:  " );
          System.out.println(" Ma the:  "+c.getMathe() );
          System.out.println(" Ho ten:  "+c.getTensv() );
          System.out.println(" So sach muon:  "+c.getSosachmuon() );
     
        }
    }
    
  6. chiennv

    chiennv New Member

    Mã:
    /**
    *
    */
    package Example;
     
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.Scanner;
     
    /**
    * @author Chienbk
    *
    */
    public class ManaLibrary {
     
        /**
        * Chuong trinh quan ly thu vien The thu vien co cac thuoc tinh ma the, ten
        * sinh vien, so sach muon Tao ra 3 doi tuong the thu vien Nhap thong tin 3
        * doi tuong tu ban phim Ghi thong tin 3 doi tuong xuong file Doc file do va
        * in du lieu ra man hinh
        */
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            LibraryCard lb1 = new LibraryCard();
            LibraryCard lb2 = new LibraryCard();
            LibraryCard lb3 = new LibraryCard();
            // lb1.age =15;
     
            System.out.println("Input infomation");
            System.out.println("Input infomation id of 1: ");
            lb1.setId(sc.nextLine());
            System.out.println("Input infomation name of 1: ");
            lb1.setName(sc.nextLine());
            System.out.println("Input infomation noBook of 1: ");
            lb1.setNoBook(sc.nextInt());
     
            sc.nextLine();
     
            System.out.println("Input infomation id of 2: ");
            lb2.setId(sc.nextLine());
            System.out.println("Input infomation name of 2: ");
            lb2.setName(sc.nextLine());
            System.out.println("Input infomation noBook of 2: ");
            lb2.setNoBook(sc.nextInt());
            sc.nextLine();
     
            System.out.println("Input infomation id of 3: ");
            lb3.setId(sc.nextLine());
            System.out.println("Input infomation name of 3: ");
            lb3.setName(sc.nextLine());
            System.out.println("Input infomation noBook of 3: ");
            lb3.setNoBook(sc.nextInt());
            sc.nextLine();
     
            try {
                FileOutputStream f = new FileOutputStream("E:\\data.doc");
                ObjectOutputStream oOS = new ObjectOutputStream(f);
                oOS.writeObject(lb1);
                oOS.writeObject(lb2);
                oOS.writeObject(lb3);
                oOS.close();
                f.close();
     
            } catch (IOException e) {
                // TODO: handle exception
                System.out.println("Error!");
            }
            // Display infomation
     
            try {
                FileInputStream fs = new FileInputStream("E:\\data.doc");
                ObjectInputStream oIS = new ObjectInputStream(fs);
                lb1 = (LibraryCard) oIS.readObject();
                lb2 = (LibraryCard) oIS.readObject();
                lb3 = (LibraryCard) oIS.readObject();
                oIS.close();
                fs.close();
     
            } catch (IOException e) {
                // TODO: handle exception
                System.out.println("Error!");
            } catch (ClassNotFoundException e) {
                // TODO: handle exception
                System.out.println("NOt found class");
            }
     
            System.out.println("Infomation of Student lb1 is: " + lb1.getId() + " "
                    + lb1.getName() + " " + lb1.getNoBook());
            System.out.println("Infomation of Student lb1 is: " + lb2.getId() + " "
                    + lb2.getName() + " " + lb2.getNoBook());
            System.out.println("Infomation of Student lb1 is: " + lb3.getId() + " "
                    + lb3.getName() + " " + lb3.getNoBook());
        }
     
    }
     
    class LibraryCard implements Serializable {
        private int tuoi;
        public int age;
        private String id;
        private String name;
        private int noBook;
     
        public String getId() {
            return id;
        }
     
        public void setId(String id) {
            this.id = id;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getNoBook() {
            return noBook;
        }
     
        public void setNoBook(int noBook) {
            this.noBook = noBook;
        }
     
    }
    
  7. HaiHack

    HaiHack Member

    Cho mình hỏi chút
    Có cách nào để đếm số object đã ghi vào file ko?
    Muốn ghi thêm object chứ ko ghi đè thì làm thế nào?
  8. donan

    donan New Member

    SAO MÌNH GHI RA file.txt , sau đó mở lên coi thì nó bị lỗi vậy nhỉ . Giải thích cho mình với được hk?
  9. thanhpl

    thanhpl New Member

    Show Spoiler

    PHP:
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    /**
     *
     * @author DuyThanh
     */
    class ThuVien implements Serializable {
        private 
    String maThe;
        private 
    String tenSinhVien;
        private 
    int soSachMuon;
     
        public 
    String getMaThe() {
            return 
    maThe;
        }
     
        public 
    void setMaThe(String maThe) {
            
    this.maThe maThe;
        }
     
        public 
    String getTenSinhVien() {
            return 
    tenSinhVien;
        }
     
        public 
    void setTenSinhVien(String tenSinhVien) {
            
    this.tenSinhVien tenSinhVien;
        }
     
        public 
    int getSoSachMuon() {
            return 
    soSachMuon;
        }
     
        public 
    void setSoSachMuon(int soSachMuon) {
            
    this.soSachMuon soSachMuon;
        }
        
    }
     
    public class 
    ObjectThuVien {
    public static 
    void main(String [] argsthrows IOExceptionClassNotFoundException{
        
    ThuVien tv1 = new ThuVien();
        
    tv1.setTenSinhVien("Nguyễn Văn A");
        
    tv1.setMaThe("NVA");
        
    tv1.setSoSachMuon(10000);
        
    ThuVien tv2 = new ThuVien();
        
    tv2.setTenSinhVien("Nguyễn Văn B");
        
    tv2.setMaThe("NVB");
        
    tv2.setSoSachMuon(70000);
        
    ThuVien tv3 = new ThuVien();
        
    tv3.setTenSinhVien("Nguyễn Văn C");
        
    tv3.setMaThe("NVC");
        
    tv3.setSoSachMuon(90000);
        try {
            
    FileOutputStream f = new FileOutputStream("d:\\thuvien.dat");
            
    ObjectOutputStream oOT = new ObjectOutputStream(f);
            
    oOT.writeObject(tv1);
            
    oOT.writeObject(tv2);
            
    oOT.writeObject(tv3);
            
    f.close();
            
    oOT.close();
        } catch (
    FileNotFoundException ex) {
            
    Logger.getLogger(ObjectThuVien.class.getName()).log(Level.SEVEREnullex);
        }
        
    ThuVien a1 = new ThuVien();
        
    ThuVien a2 = new ThuVien();
        
    ThuVien a3 = new ThuVien();
        
        
        
    FileInputStream f = new FileInputStream("d:\\thuvien.dat");
        
    ObjectInputStream oIT = new ObjectInputStream(f);
        
    a1 = (ThuVienoIT.readObject();
        
    a2 = (ThuVienoIT.readObject();
        
    a3 = (ThuVienoIT.readObject();
        
        
    f.close();
        
    oIT.close();
        
    System.out.println("The Thu vien 1: " a1.getTenSinhVien() + ". Ma: " a1.getMaThe() + ". So sach muon: " a1.getSoSachMuon());
        
    System.out.println("The Thu vien 1: " a2.getTenSinhVien() + ". Ma: " a2.getMaThe() + ". So sach muon: " a2.getSoSachMuon());
        
    System.out.println("The Thu vien 1: " a3.getTenSinhVien() + ". Ma: " a3.getMaThe() + ". So sach muon: " a3.getSoSachMuon());
    }    
  10. TienDatII

    TienDatII New Member

    trong phần đọc đối tượng nếu trong file có bao nhiêu đối tượng thì lại phải tạo bấy nhiêu đối tượng mới à. Có cách nào chỉ phải tạo 1 đối tượng mới sau đó đọc tuần tự file gán giá trị cho đối tượng rồi in ra màn hình không
  11. trungma

    trungma New Member

    Xem mình hộ bài này với, Mình kết hợp với các bài khác làm xem ho minh có đúng không
    Bài Tập (open)

    PHP:
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.Scanner;

    public class 
    ObjectSinhVien {
    public static 
    void main(String[] args)throws IOExceptionClassNotFoundException{
    Scanner sc=new Scanner(System.in);
    System.out.print("Nhap So luong SV: ");
    int n1 sc.nextInt();
    //Tạo file lưu dữ liệu
    try{
    FileOutputStream Nfile=new FileOutputStream("E:/File/ds.txt");
    ObjectOutputStream Nob=new ObjectOutputStream(Nfile);
    ListSV1 A;
    A=new ListSV1(n1);
    Nob.writeObject(A);
    Nfile.close();
    Nob.close();
    }catch(
    IOException e1){
    System.out.print("Co loi xay ra");
    }

    //A1= new ListSV1(n1);
    //dọc file
    try{
    FileInputStream Nfile=new FileInputStream("E:/File/ds.txt");
    ObjectInputStream Nin=new ObjectInputStream(Nfile);
    ListSV1 A1;
    A1 = (ListSV1Nin.readObject();
    A1.Dislay(n1);
    Nin.close();
    Nfile.close();
    }catch(
    IOException e2){
    System.out.print("Co loi xay ra");
    }
    //SinhVien[n1] s;
    for (int j=0;j<n1;j++){
    //a=A1[j];
    }

    }
    }
    //tạo class sinh viên:tên , mã thẻ, số sách nợ
    class SinhVien1 implements Serializable{
    private 
    String namemathe;
    public 
    String getName() {
    return 
    name;
    }
    public 
    void setName(String name) {
    this.name name;
    }
    public 
    String getMathe() {
    return 
    mathe;
    }
    public 
    void setMathe(String mathe) {
    this.mathe mathe;
    }
    public 
    int getNumberbook() {
    return 
    numberbook;
    }
    public 
    void setNumberbook(int numberbook) {
    this.numberbook numberbook;
    }
    private 
    int numberbook;
    public 
    void Nhap(){
    Scanner sc=new Scanner(System.in);
    System.out.print("Nhap Ho Ten: ");
    name=sc.nextLine();
    System.out.print("Nhap Ma The: ");
    mathe=sc.nextLine();
    System.out.print("Sach Con No: ");
    numberbook=sc.nextInt();
    }

    }

    @
    SuppressWarnings("serial")
    //tạo class lưu trữ danh sách sinh viên,một thuộc tính List của dữ liệu lớp SinhVien, phương thức nhập và hiển thị.
    class ListSV1 implements Serializable{
    SinhVien1[] List1;
    public 
    ListSV1(int n){
    List1=new SinhVien1[n];
    for(
    int i=0;i<n;i++){
    List1[i]=new SinhVien1();
    List1[i].Nhap();

    }
    }
    public 
    void Dislay(int n){
    SinhVien1 ds[];
    ds=new SinhVien1[n];
    for (
    int j=0;j<n;j++){
    ds[j]=List1[j];
    System.out.println("Ho Ten: "+ds[j].getName());
    System.out.println("Ma The: "+ds[j].getMathe());
    System.out.println("No Sach: "+ds[j].getNumberbook());
    }

    }
    }
  12. thanhdat86

    thanhdat86 New Member

    MyUnit32 (open)

    PHP:
    package hoc.java;
     
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.Scanner;
     
    public class 
    Unit33 {
    int soLuong;
     
    public static 
    void main(String[] args) {
    Unit33 u = new Unit33();
    u.outputData();
    u.inputData();
    }
     
    public 
    void inputData() {
    try {
    TheThuVien[] arrThe = new TheThuVien[10];
    FileInputStream file = new FileInputStream("C:\\java.dat");
    ObjectInputStream oIT = new ObjectInputStream(file);
    for (
    int i 0this.soLuongi++) {
    arrThe[i] = new TheThuVien();
    arrThe[i] = (TheThuVienoIT.readObject();
    }
    oIT.close();
    file.close();
    for (
    int i 0this.soLuongi++) {
    System.out.print(arrThe[i].getMaThe() + " | ");
    System.out.print(arrThe[i].getTenSV() + " | ");
    System.out.print(arrThe[i].getSoLuongSachMuon() + " | ");
    System.out.println();
    }
     
    } catch (
    IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (
    ClassNotFoundException e) {
    // TODO Auto-generated catch block
    System.out.println("Khong tim thay Class");
    }
     
    }
     
    public 
    void outputData() {
    Scanner in = new Scanner(System.in);
    try {
    FileOutputStream file = new FileOutputStream("C:\\java.dat");
    ObjectOutputStream oOT = new ObjectOutputStream(file);
    System.out.println("Moi ban nhap so luong the thu vien: ");
    this.soLuong in.nextInt();
    TheThuVien[] arrThe = new TheThuVien[soLuong];
    for (
    int i 0arrThe.lengthi++) {
    arrThe[i] = new TheThuVien();
    arrThe[i].inputTheThuVien();
    oOT.writeObject(arrThe[i]);
    }
    oOT.close();
    file.close();
    } catch (
    IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
     
    class 
    TheThuVien implements Serializable {
    private 
    String maThe;
    private 
    String tenSV;
    private 
    int soLuongSachMuon;
     
    public 
    String getMaThe() {
    return 
    maThe;
    }
     
    public 
    void setMaThe(String maThe) {
    this.maThe maThe;
    }
     
    public 
    String getTenSV() {
    return 
    tenSV;
    }
     
    public 
    void setTenSV(String tenSV) {
    this.tenSV tenSV;
    }
     
    public 
    int getSoLuongSachMuon() {
    return 
    soLuongSachMuon;
    }
     
    public 
    void setSoLuongSachMuon(int soLuongSachMuon) {
    this.soLuongSachMuon soLuongSachMuon;
    }
     
    public 
    void inputTheThuVien() {
    Scanner in = new Scanner(System.in);
    System.out.println("Nhap ma the: ");
    this.maThe in.nextLine();
    System.out.println("Nhap ten sinh vien: ");
    this.tenSV in.nextLine();
    System.out.println("Nhap so luong sach muon: ");
    this.soLuongSachMuon in.nextInt();
    }
    }
  13. NHATTA

    NHATTA Member

    Quan trọng vẫn là tư duy lập trình.Học ngôn ngữ nào cũng cần nó
  14. TruongCongPha

    TruongCongPha New Member

    PHP:
    package baiTap;
    import java.io.*;
    import java.io.Serializable;
    import java.util.Scanner;
    class 
    TheThuVien implements Serializable{
    public 
    String tenSV;
    public 
    int maThe,soSachMuon;
    public 
    int getMaThe() {
    return 
    maThe;
    }
    public 
    int getSoSachMuon() {
    return 
    soSachMuon;
    }
    public 
    String getTenSV() {
    return 
    tenSV;
    }
    public 
    void setMaThe(int maThe) {
    this.maThe maThe;
    }
    public 
    void setSoSachMuon(int soSachMuon) {
    this.soSachMuon soSachMuon;
    }
    public 
    void setTenSV(String tenSV) {
    this.tenSV tenSV;
    }
    }
    public class 
    Unit33 {
    public static 
    void main(String[] argsthrows IOException {
    Scanner innum=new Scanner(System.in);
    Scanner intext=new Scanner(System.in);
    TheThuVien a=new TheThuVien();
    TheThuVien b=new TheThuVien();
    TheThuVien c=new TheThuVien();
    System.out.println("Nhap thong tin SV a");
    a.tenSV=intext.nextLine();
    a.maThe=innum.nextInt();
    a.soSachMuon=innum.nextInt();
    a.setMaThe(a.maThe);
    a.setTenSV(a.tenSV);
    a.setSoSachMuon(a.soSachMuon);
    System.out.println("Nhap thong tin SV b");
    b.tenSV=intext.nextLine();
    b.maThe=innum.nextInt();
    b.soSachMuon=innum.nextInt();
    b.setMaThe(b.maThe);
    b.setTenSV(b.tenSV);
    b.setSoSachMuon(b.soSachMuon);
    System.out.println("Nhap thong tin SV c");
    c.tenSV=intext.nextLine();
    c.maThe=innum.nextInt();
    c.soSachMuon=innum.nextInt();
    c.setMaThe(c.maThe);
    c.setTenSV(c.tenSV);
    c.setSoSachMuon(c.soSachMuon);
    try {
    FileOutputStream f = new FileOutputStream("D:\\sinhvien.txt");
    ObjectOutputStream oOT= new ObjectOutputStream(f);
    oOT.writeObject(a);
    oOT.writeObject(b);
    oOT.writeObject(c);
    oOT.close();
    f.close();
    } catch (
    IOException e) {
    System.out.println("Xay ra loi 1: "+e);
    }
    TheThuVien a1 = new TheThuVien();
    TheThuVien b1 = new TheThuVien();
    TheThuVien c1 = new TheThuVien();
    try {
    FileInputStream f = new FileInputStream("D:\\sinhvien.txt");
    ObjectInputStream oIT = new ObjectInputStream(f);
    a1= (TheThuVienoIT.readObject();
    b1= (TheThuVienoIT.readObject();
    c1= (TheThuVienoIT.readObject();
    oIT.close();
    f.close();
    } catch (
    IOException e) {
    System.out.println("Xay ra loi 2: "+e);
    }catch(
    ClassNotFoundException e){
    System.out.println("Khong tim thay class");
    }
    System.out.println("Thong tin the thu vien SV a1 doc ra la: \nTen: "+a1.tenSV+"\nMa The: "+a1.maThe+"\nSo Sach Muon: "+a1.soSachMuon+"\n");
    System.out.println("Thong tin the thu vien SV b1 doc ra la: \nTen: "+b1.tenSV+"\nMa The: "+b1.maThe+"\nSo Sach Muon: "+b1.soSachMuon+"\n");
    System.out.println("Thong tin the thu vien SV c1 doc ra la: \nTen: "+c1.tenSV+"\nMa The: "+c1.maThe+"\nSo Sach Muon: "+c1.soSachMuon);
    }
    }
  15. tuanleedragon

    tuanleedragon New Member

    bai nay yeu cau nhap tu ban phim ma
  16. hatb

    hatb Member

    BTVN - Bai33 (open)

    PHP:
    package baitapvenha;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.Scanner;
    /**
    * Class 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!
    */
    public class Bai33_RWObject {
         public static 
    void main(String[] args){
             
    theTV the1 = new theTV();
             
    theTV the2 = new theTV();
             
    theTV the3 = new theTV();
             
    System.out.println("\nNhap the1: ");
             
    the1.nhapTT();
             
    System.out.println("\nNhap the2: ");
             
    the2.nhapTT();
             
    System.out.println("\nNhap the3: ");
             
    the3.nhapTT();
     
            try {
                
    FileOutputStream fo = new FileOutputStream("E:\\demoFile\\thuvien.dat");
                
    ObjectOutputStream oOT = new ObjectOutputStream(fo);
                
    oOT.writeObject(the1);
                
    oOT.writeObject(the2);
                
    oOT.writeObject(the3);
                
    fo.close();
                
    oOT.close();
           } catch (
    FileNotFoundException e) {
                     
    // TODO: handle exception
                     
    System.out.println("Error "+e);
           } catch (
    IOException e) {
                      
    // TODO Auto-generated catch block
                      
    System.out.println("Error "+e);
           }
      
           try {
                
    FileInputStream fi = new FileInputStream("E:\\demoFile\\thuvien.dat");
                
    ObjectInputStream oIT = new ObjectInputStream(fi);
                
    the1 = (theTVoIT.readObject();
                
    the2 = (theTVoIT.readObject();
                
    the3 = (theTVoIT.readObject();
                
    fi.close();
                
    oIT.close();
           } catch (
    IOException e) { 
                
    // TODO: handle exception
                
    System.out.println("Error: "+e);
           }
           catch (
    ClassNotFoundException e) {
                 
    // TODO: handle exception
                 
    System.out.println("Error: "+e);
           }
     
           
    System.out.println("Thong tin the thu vien:");
           
    System.out.println("\tMathe\tTen\tSoSachmuon");
           
    System.out.println("\t"+the1.getMaThe()+"\t"+the1.getTenSV()+"\t"+the1.getSoSachMuon());
           
    System.out.println("\t"+the2.getMaThe()+"\t"+the2.getTenSV()+"\t"+the2.getSoSachMuon());
           
    System.out.println("\t"+the3.getMaThe()+"\t"+the3.getTenSV()+"\t"+the3.getSoSachMuon());
         }
     }
     
    class 
    theTV implements Serializable{
         private 
    String maThetenSV;
         private 
    int soSachMuon;
     
         public 
    void nhapTT() {
              
    Scanner sc = new Scanner(System.in);
              
    System.out.print("Ma the : ");
              
    maThe sc.nextLine();
              
    System.out.print("Ten SV : ");
              
    tenSV sc.nextLine();
              
    System.out.print("So sach muon : ");
              try {
                   
    soSachMuon Integer.parseInt(sc.nextLine());
              } catch (
    Exception e) {
                   
    // TODO: handle exception
                   
    System.out.println("Error: "+e);
              }
         }
      
         public 
    String getMaThe() {
              return 
    maThe;
         }
         public 
    String getTenSV() {
             return 
    tenSV;
         }
         public 
    int getSoSachMuon() {
             return 
    soSachMuon;
         }
      
     }

Chia sẻ trang này