Khóa học free Bài 35: ArrayList trong Java (2)

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

  1. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Lượt xem: 31,058
    /* 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;) */

    ArrayListWith5Points
    Ở bài viết này, mình sẽ chia sẽ về cách lưu lại dữ liệu khi trong chương trình sử dụng ArrayList.
    Thực ra, kết hợp với bài trước, bài đọc ghi Object, sẽ có nhiều bạn làm được điều này ngay. Nhưng mình sẽ viết để cho một số bạn cảm thấy khó khăn tham khảo luôn. Mình sẽ chú thích trong code!
    Về cách lưu lên file ở chương trình có dùng ArrayList, mình dùng 2 cách như sau

    Cách 1: Lưu trữ các đối tượng trong một đối tượng ArrayList xuống file!
    Chương trình dưới đây sẽ lưu toàn bộ các đối tượng học sinh xuống file, để thao tác, ta nạp các đối tượng này và 1 đối tượng ArrayList
    PHP:
    package javaandroidvn;
     
    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.ArrayList;
    import java.util.Scanner;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    class 
    HocSinh implements Serializable {
     
        private 
    String ten;
        private 
    int tuoi;
     
        public 
    String getTen() {
            return 
    ten;
        }
     
        public 
    void setTen(String ten) {
            
    this.ten ten;
        }
     
        public 
    int getTuoi() {
            return 
    tuoi;
        }
     
        public 
    void setTuoi(int tuoi) {
            
    this.tuoi tuoi;
        }
    }
     
    public class 
    JavaAndroidVn {
     
        public static 
    void main(String[] argsthrows IOException {
            
    ArrayList<HocSinhlistHS = new ArrayList(); // Khai báo 1 đối tượng ArrayList, các phần tử tạo ra từ lớp HocSinh
     
            
    Scanner input = new Scanner(System.in);
            
    System.out.println("Nhập số học sinh: ");
            
    int n input.nextInt();
     
            
    //Lấy dữ liệu và ghi vào file
            
    try {
                
    FileOutputStream f = new FileOutputStream("E:\\hocsinh.dat");
                
    ObjectOutputStream oOT = new ObjectOutputStream(f); // Sử dụng để ghi file theo từng Object
                
    for (int i 0ni++) {
                    
    HocSinh x = new HocSinh(); //Tạo đối tượng x để lưu tạm thời dữ liệu
                    
    System.out.println("Học sinh thứ " ": ");
                    
    input.nextLine(); //Dòng này để tránh bị trượt dòng!
     
                    
    System.out.print("Tên: ");
                    
    String tenX input.nextLine();
     
                    
    System.out.print("Tuổi: ");
                    
    int tuoiX input.nextInt();
     
                    
    x.setTen(tenX);
                    
    x.setTuoi(tuoiX);
     
                    
    oOT.writeObject(x); // Ghi  Object là đối tượng x xuống file
     
                
    }
            } catch (
    FileNotFoundException ex) {
                
    Logger.getLogger(JavaAndroidVn.class.getName()).log(Level.SEVEREnullex);
            }
          
            
    //Đọc dữ liệu từ file, lấy các object ra rồi gán vào ListHS
            
    try {
                
    FileInputStream f2 = new FileInputStream("E:\\hocsinh.dat");
                
    ObjectInputStream oIT = new ObjectInputStream(f2); // Sử dụng để đọc file theo từng Object
                
    HocSinh x = new HocSinh(); //Tạo đối tượng x để lưu tạm thời dữ liệu
                
    for (int i 0ni++) {
                    
    = (HocSinhoIT.readObject(); //Đọc Object đầu tiên ép kiểu về kiểu SinhVien sau đó gán bằng đối tượng a1
                    
    listHS.add(x);
                }
                
    oIT.close();
                
    f2.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");
            }
     
            
    //In thông tin ra ngoài!
            
    System.out.println("Thông tin danh sách vừa nhập vào là: ");
            for (
    int i 0listHS.size(); i++) {
                
    System.out.print("Học sinh thứ " i);
                
    System.out.print(" - Tên " listHS.get(i).getTen() + " Tuổi: " listHS.get(i).getTuoi() + "\n");
            }
     
     
        }
    }
    Cách 2: Lưu đối tượng ArrayList xuống File
    Vì bản thân listHS là 1 đối tượng, nên ngắn gọn ta chỉ cần lưu trữ đối tượng listHS là được!
    PHP:
    package javaandroidvn;
     
    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.ArrayList;
    import java.util.Scanner;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    class 
    HocSinh implements Serializable {
     
        private 
    String ten;
        private 
    int tuoi;
     
        public 
    String getTen() {
            return 
    ten;
        }
     
        public 
    void setTen(String ten) {
            
    this.ten ten;
        }
     
        public 
    int getTuoi() {
            return 
    tuoi;
        }
     
        public 
    void setTuoi(int tuoi) {
            
    this.tuoi tuoi;
        }
    }
     
    public class 
    JavaAndroidVn {
     
        public static 
    void main(String[] argsthrows IOException {
            
    ArrayList<HocSinhlistHS = new ArrayList(); // Khai báo 1 đối tượng ArrayList, các phần tử tạo ra từ lớp HocSinh
     
            
    Scanner input = new Scanner(System.in);
            
    System.out.println("Nhập số học sinh: ");
            
    int n input.nextInt();
     
            
    //Lấy dữ liệu và ghi vào file
     
            
    for (int i 0ni++) {
                
    HocSinh x = new HocSinh(); //Tạo đối tượng x để lưu tạm thời dữ liệu
                
    System.out.println("Học sinh thứ " ": ");
                
    input.nextLine(); //Dòng này để tránh bị trượt dòng!
     
                
    System.out.print("Tên: ");
                
    String tenX input.nextLine();
     
                
    System.out.print("Tuổi: ");
                
    int tuoiX input.nextInt();
     
                
    x.setTen(tenX);
                
    x.setTuoi(tuoiX);
     
                
    listHS.add(x);
     
            }
     
     
            try {
                
    FileOutputStream f = new FileOutputStream("E:\\hocsinh.dat");
                
    ObjectOutputStream oOT = new ObjectOutputStream(f); // Sử dụng để ghi file theo từng Object
                
    oOT.writeObject(listHS); // Ghi  Object là đối tượng x xuống file
            
    } catch (FileNotFoundException ex) {
                
    Logger.getLogger(JavaAndroidVn.class.getName()).log(Level.SEVEREnullex);
            }
     
     
            
    //Đọc dữ liệu từ file, lấy các object ra rồi gán vào ListHS
     
            
    ArrayList<HocSinhlistHS2 = new ArrayList(); // Khai báo 1 đối tượng ArrayList thứ 2, các phần tử tạo ra từ lớp HocSinh
            //Dùng để lưu dữ liệu riêng khi ta đọc file!                  
            
    try {
                
    FileInputStream f2 = new FileInputStream("E:\\hocsinh.dat");
                
    ObjectInputStream oIT = new ObjectInputStream(f2); // Sử dụng để đọc file theo từng Object
                
    listHS2 = (ArrayList<HocSinh>) oIT.readObject(); //Ép kiểu đối tượng lấy từ file ra về dạng ArrayList<HocSinh>
                
    oIT.close();
                
    f2.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");
            }
     
            
    //In thông tin ra ngoài! Thông tin lấy từ đối tượng ListHS2 vừa đọc từ file
            
    System.out.println("Thông tin danh sách vừa nhập vào là: ");
            for (
    int i 0listHS2.size(); i++) {
                
    System.out.print("Học sinh thứ " i);
                
    System.out.print(" - Tên " listHS2.get(i).getTen() + " Tuổi: " listHS2.get(i).getTuoi() + "\n");
            }
     
     
        }
    }

    [​IMG]

    Bài tập về nhà::D
    Làm chương trình từ điển. Danh sách từ là danh sách các đối tượng gồm 2 thuộc tính từ và nghĩa
    Số từ nhập vào từ màn hình. Nhập dữ liệu các từ qua màn hình console. Khi nhập dữ liệu xong, toàn bộ dữ liệu được lưu vào file theo kiểu object.
    Sau đó chương trình hỏi từ cần tìm, nhập từ cần tìm. Chương trình đọc file vừa ghi, rồi tìm kiếm nghĩa của từ vừa nhập, in ra nghĩa của từ cần tra cứu!

    (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
    arraylist java, arraylist, mảng các đối tượng trong java, phần mềm từ điển bằng java, khóa học java online
    X_Datvinatoon thích bài này.
  2. X_Dat

    X_Dat Member

    Rất hay. Cám ơn bạn nhìu
    Đây là bài của mình. Bạn check hộ cái nha :)
    PHP:
    package com.example.test;
     
    public class 
    TuDienAnh_Viet {
        private 
    String tu;
        private 
    String nghia;
     
        public 
    TuDienAnh_Viet(String tuString nghia){
            
    this.tu "";
            
    this.nghia "";
        }
     
        public 
    String getTu(){
            return 
    tu;
        }
     
        public 
    String getNghia(){
            return 
    nghia;
        }
     
        public 
    void setTu(String tu){
            
    this.tu tu;
        }
     
        public 
    void setNghia(String nghia){
            
    this.nghia nghia;
        }
     
    }
    PHP:
    package com.example.test;
     
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.*;
     
    public class 
    Main_TuDien {
        public static 
    Scanner sc;
     
        public static 
    void main(String[] args) {
            
    ArrayList<TuDienAnh_VietlistTD = new ArrayList<TuDienAnh_Viet>();
         
            
    sc = new Scanner(System.in);
            
    System.out.println("Nhap so tu: ");
            
    int input sc.nextInt();
     
            for (
    int i 0inputi++) {
                
    TuDienAnh_Viet td = new TuDienAnh_Viet("""");
     
                
    System.out.println("Nhap tu thu " + (1) + ": ");
                
    sc.nextLine();
     
                
    System.out.println("Tu: ");
                
    String nameTu sc.nextLine();
     
                
    System.out.println("Nghia: ");
                
    String nameNghia sc.nextLine();
     
                
    td.setTu(nameTu);
                
    td.setNghia(nameNghia);
                
    listTD.add(td);
     
            }
            try {
                
    FileOutputStream f = new FileOutputStream("tu dien.dat");
                
    ObjectOutputStream oos = new ObjectOutputStream(f);
                
    oos.writeObject(listTD);
            } catch (
    Exception e) {
                
    System.out.println("Loi 1");
            }
            
    // System.out.println("Thong tin vua nhap la:");
            // for (int i = 0; i < input; i++) {
            // System.out.println("Tu thu " + (i + 1) + ": ");
            // System.out.println("Tu: " + listTD.get(i).getTu()
            // + "\tCo nghia la: " + listTD.get(i).getNghia());
            // }
            
    ArrayList<TuDienAnh_VietlistTD2 = new ArrayList<TuDienAnh_Viet>();
            try {
                
    FileInputStream f2 = new FileInputStream("tu dien.dat");
                
    ObjectInputStream ois = new ObjectInputStream(f2);
                
    listTD2 = (ArrayList<TuDienAnh_Viet>) ois.readObject();
                
    ois.close();
                
    f2.close();
            } catch (
    Exception e) {
                
    System.out.println("Loi 2");
            }
            
    System.out.println("Trong file co: ");
            for (
    int i 0listTD2.size(); i++) {
                
    System.out.println("Tu thu: " + (1));
                
    System.out.println("Tu: " listTD2.get(i).getTu()
                        + 
    "\tCo nghia la: " listTD2.get(i).getNghia());
            }
            
    System.out.println("Nhap tu muon tim ");
            
    String nameSearchTu sc.nextLine();
            for (
    int i 0inputi++) {
                if (
    listTD2.get(i).getTu().equals(nameSearchTu)) {
                    
    System.out.println("Nghia cua tu nay la: "
                            
    listTD2.get(i).getNghia());
                }
            }
     
        }
    }
    loiyeunaoTiasangmoi92 thích bài này.
  3. Martimillion

    Martimillion New Member

    Cảm ơn rất nhiều ! hết sức cơ bản và dễ hiểu
  4. Martimillion

    Martimillion New Member

    Cảm ơn rất nhiều ! hết sức cơ bản và dễ hiểu
  5. Show Spoiler

    Mã:
    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.ArrayList;
    import java.util.Scanner;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    class TU implements Serializable{
        private String tu;
        private String nghia;
        public String getTu() {
            return tu;
        }
        public void setTu(String tu) {
            this.tu = tu;
        }
        public String getNghia() {
            return nghia;
        }
        public void setNghia(String nghia) {
            this.nghia = nghia;
        }
       
    }
    public class BTBai34 {
        public static void main(String[]args) throws IOException{
            ArrayList<TU> arr=new ArrayList();
            Scanner in=new Scanner(System.in);
            int n;
            System.out.println("Nhap so tu:");
            n=in.nextInt();
            in.nextLine();
            int i;
            String TU,NGHIA;
            for(i=0;i<n;i++)
            {
                TU x=new TU();
                System.out.println("Nhap tt Tu thu "+i);
                System.out.println("Nhap Tu: ");
                TU=in.nextLine();
                System.out.println("Nhap Nghia");
                NGHIA=in.nextLine();
                x.setTu(TU);
                x.setNghia(NGHIA);
                arr.add(x);
            }
            //ghi file
            try {
                FileOutputStream f = new FileOutputStream("D:\\hocsinh.txt");
                ObjectOutputStream oOT = new ObjectOutputStream(f);
                oOT.writeObject(arr);
            } catch (FileNotFoundException ex) {
                Logger.getLogger(VDBai35B.class.getName()).log(Level.SEVERE, null, ex);
            }
            // nhap tu can tk
            String s;
            System.out.println("Nhap Tu can tim kiem: ");
            s=in.nextLine();
            //Đọc dữ liệu từ file, lấy các object ra rồi gán vào arr
     
            ArrayList<TU> arrB = new ArrayList(); // Khai báo 1 đối tượng ArrayList thứ 2, các phần tử tạo ra từ lớp HocSinh
            //Dùng để lưu dữ liệu riêng khi ta đọc file!                 
            try {
                FileInputStream f2 = new FileInputStream("D:\\hocsinh.txt");
                ObjectInputStream oIT = new ObjectInputStream(f2); // Sử dụng để đọc file theo từng Object
                arrB = (ArrayList<TU>) oIT.readObject();
                oIT.close();
                f2.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");
            }
     
            /*//In thông tin ra ngoài! Thông tin lấy từ đối tượng arrB vừa đọc từ file
            System.out.println("Thông tin TU DIEN  là: ");
            for (i = 0; i < arrB.size(); i++) {
                System.out.println(arrB.get(i).getTu() + " ie: " + arrB.get(i).getNghia() );
            }*/
            //tim kiem tu
            int dem=0;
            for(i=0;i<arrB.size();i++)
            {
                if(s.compareToIgnoreCase(arrB.get(i).getTu())==0)
                {
                    dem++;
                    System.out.println(" Nghia cua tu do la: "+arrB.get(i).getNghia());
                }
            }
            if(dem==0)
            {
                System.out.println(" Khong co tu nay trong tu dien.");
            }
           
        }
    }
  6. chiennv

    chiennv New Member

    Bài của mình :D
    Show Spoiler

    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.ArrayList;
    import java.util.Scanner;
     
    /**
    * @author Chienbk
    *
    */
    class NewWord implements Serializable {
        private String eng;
        private String vn;
        public String getEng() {
            return eng;
        }
        public void setEng(String eng) {
            this.eng = eng;
        }
        public String getVn() {
            return vn;
        }
        public void setVn(String vn) {
            this.vn = vn;
        }
       
    }
     
     
    public class ArrayList2 {
     
        /**
        * Làm chương trình từ điển.
        * Danh sách từ là danh sách các đối tượng gồm 2 thuộc tính từ và nghĩa
        * Số từ nhập vào từ màn hình.
        * Nhập dữ liệu các từ qua màn hình console.
        * Khi nhập dữ liệu xong, toàn bộ dữ liệu được lưu vào file theo kiểu object.
        * Sau đó chương trình hỏi từ cần tìm, nhập từ cần tìm.
        * Chương trình đọc file vừa ghi, rồi tìm kiếm nghĩa của từ vừa nhập, in ra nghĩa của từ cần tra cứu!
        */
       
        public static int noWord;
        public void addWord(){
            Scanner sc = new Scanner(System.in);
            try {
                FileOutputStream f = new FileOutputStream("E:\\td.txt");
                ObjectOutputStream oOS = new ObjectOutputStream(f);
                System.out.print("Input your number new word: ");
                noWord = sc.nextInt();
                sc.nextLine();
                for (int i = 0; i < noWord; i++) {
                    NewWord nw = new NewWord();
                    System.out.print("English: ");
                    nw.setEng(sc.nextLine());
                    System.out.print("Vietnamese: ");
                    nw.setVn(sc.nextLine());
                    oOS.writeObject(nw);
                   
                }
                oOS.close();
                f.close();
            } catch (IOException e) {
                // TODO: handle exception
                System.out.println("Error!");
            }
        }
        public void seachWord(){
            ArrayList<NewWord> arr = new ArrayList<>();
            String seach;
            Scanner sc = new Scanner(System.in);
            try {
                FileInputStream f = new FileInputStream("E:\\td.txt");
                ObjectInputStream oIS = new ObjectInputStream(f);
                for (int i = 0; i < noWord; i++) {
                    NewWord nw = new NewWord();
                    nw = (NewWord) oIS.readObject();
                    arr.add(nw);
                }
                oIS.close();
                f.close();
            } catch (IOException e) {
                // TODO: handle exception
                System.out.println("Error!");
            }catch(ClassNotFoundException e){
                System.out.println("Not found class!");
            }
            //Search for word
            System.out.print("Input your word you wuant seach: ");
            seach = sc.nextLine();
            for (int i = 0; i < arr.size(); i++) {
                if (seach.equals(arr.get(i).getEng())) {
                    System.out.println("Vietnamese: "+ arr.get(i).getVn());
                    break;
                } else {
                    System.out.println("Not word!");
     
                }
            }
        }
       
        public static void main(String[] args) throws IOException{
            ArrayList2 arrl2 = new ArrayList2();
            System.out.println("Dictionary Eng - Viet");
            int choice =0;
            Scanner scc = new Scanner(System.in);
            do {
                System.out.println("1. Add new word!");
                System.out.println("2. Seach for word");
                System.out.println("3. Exit!");
                System.out.print("Input your choice: ");
                choice = scc.nextInt();
                switch (choice) {
                case 1:
                    arrl2.addWord();
                    break;
                case 2:
                    arrl2.seachWord();
                    break;
                case 3:
                   
                    break;
     
                default:
                    System.out.println("Not correct! Please try again!");
                    break;
                }
               
            } while (choice!=3);
        }
     
    }
    
  7. manhdinh

    manhdinh New Member

    Tiasangmoi92 cho mình hỏi là tại sao khi mình ghi vào file.dat mà khi mở bằng wordpad lại bị lỗi Phông chữ thế?Thanks
  8. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    À bạn ơi, ghi object là mã hóa rồi, nên không xem được thông tin bằng các phần mềm thông thường đâu, trừ khi là ghi dạng văn bản, bạn phải dùng chính chương trình java bạn viết, mở đúng định dạng object bạn quy định mới hiển thị được ^^
    chiennv thích bài này.
  9. chiennv

    chiennv New Member

    Bạn ơi, bạn xem hộ mình bài làm của mình ấy, tại sao khi tìm đc mình dùng break để thoát vòng lặp rồi mà nó lại in ra Not word trong câu lệnh else nhỉ :(
  10. hanhnv87

    hanhnv87 New Member

    Bài của mình đơn giản chỉ có thế này thôi: :D

    Show Spoiler

    PHP:
    package com.hanhnv.bai35;
     
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.Scanner;
     
    public class 
    HomeWorkUnit35 {
        public static 
    void main(String[] args) {
            
    ArrayList<VocabularylistVocIn = new ArrayList();
     
            
    Scanner s = new Scanner(System.in);
            
    System.out.println("Enter number of vocabulary you want to insert: ");
            
    int n s.nextInt();
            
    s.nextLine();
     
            for (
    int i 0ni++) {
                
    Vocabulary vocIn = new Vocabulary();
                
    System.out.println("Please enter the word number " + (1));
     
                
    System.out.println("Enter word: ");
                
    String w s.nextLine();
     
                
    System.out.println("Enter mean: ");
                
    String m s.nextLine();
     
                
    vocIn.setWord(w);
                
    vocIn.setMean(m);
     
                
    listVocIn.add(vocIn);
            }
     
            try {
                
    FileOutputStream fo = new FileOutputStream("D:\\listvocabulary.txt");
                
    ObjectOutputStream oOS = new ObjectOutputStream(fo);
                
    oOS.writeObject(listVocIn);
                
    oOS.close();
                
    fo.close();
            } catch (
    FileNotFoundException e) {
                
    System.out.println("File Not Found!");
            } catch (
    Exception ex) {
                
    System.out.println(ex.toString());
            }
     
            
    ArrayList<VocabularylistVocOut = new ArrayList();
            try {
                
    Vocabulary vocOut = new Vocabulary();
                
    FileInputStream fi = new FileInputStream("D:\\listvocabulary.txt");
                
    ObjectInputStream oIS = new ObjectInputStream(fi);
                
    listVocOut = (ArrayList<Vocabulary>) oIS.readObject();
                
    oIS.close();
                
    fi.close();
            } catch (
    FileNotFoundException e) {
                
    System.out.println("File Not Found!");
            } catch (
    Exception e) {
                
    System.out.println(e.toString());
            }
            
    System.out.println("//============================//");
           
            
    boolean found false;
            
    System.out.println("Enter new word you want to look up: ");
            
    String search s.nextLine();
            for (
    int i 0listVocOut.size(); i++) {
                if (
    search.compareToIgnoreCase(listVocOut.get(i).getWord())==0) {
                    
    System.out.println(listVocOut.get(i).getWord()+": "+listVocOut.get(i).getMean());
                    
    found true;
                }
            }
            if (!
    found) {
                
    System.out.println("The word you want to look up not found!");
            }
        }
     
    }
     
    class 
    Vocabulary implements Serializable {
        private 
    String wordmean;
     
        public 
    String getWord() {
            return 
    word;
        }
     
        public 
    void setWord(String word) {
            
    this.word word;
        }
     
        public 
    String getMean() {
            return 
    mean;
        }
     
        public 
    void setMean(String mean) {
            
    this.mean mean;
        }
    }
  11. thanhpl

    thanhpl New Member

    Show Spoiler

    PHP:
    class Dictionary implements Serializable {
        private 
    String word;
        private 
    String meaning;
     
        public 
    String getWord() {
            return 
    word;
        }
     
        public 
    void setWord(String word) {
            
    this.word word;
        }
     
        public 
    String getMeaning() {
            return 
    meaning;
        }
     
        public 
    void setMeaning(String meaning) {
            
    this.meaning meaning;
        }
    }
     
    public class 
    ObjectDictionary {
        public static 
    void main(String [] args){
            
    ArrayList<DictionarylistDic = new ArrayList<>();
            
    int numWord;
            
    Scanner input = new Scanner(System.in);
            
    System.out.print("Nhap so tu vung:");
            
    numWord input.nextInt();
            
    input.nextLine();
                   
            for (
    int i 0numWordi++) {
                
    Dictionary dic = new Dictionary();
                
    String word;
                
    String meaning;
                
    System.out.print("Nhap tu tieng anh: ");
                
    word input.nextLine();
                
    System.out.print("Nhap nghia cua tu: ");
                
    meaning input.nextLine();
                
    dic.setWord(word);
                
    dic.setMeaning(meaning);
                
    listDic.add(dic);
            }
            try {
                
    //ghi xuong file
                
    FileOutputStream f = new FileOutputStream("d:\\dictionary.dat");
                
    ObjectOutputStream oOT = new ObjectOutputStream(f);
                
    oOT.writeObject(listDic);
                
    f.close();
                
    oOT.close();
            } catch (
    FileNotFoundException ex) {
                
    Logger.getLogger(ObjectDictionary.class.getName()).log(Level.SEVEREnullex);
            } catch (
    IOException ex) {
                
    Logger.getLogger(ObjectDictionary.class.getName()).log(Level.SEVEREnullex);
            }
     
            
    ArrayList<DictionarylistDic2 = new ArrayList<>();
            try {
                
    FileInputStream f = new FileInputStream("d:\\dictionary.dat");
                
    ObjectInputStream oIT = new ObjectInputStream(f);
                
    listDic2 = (ArrayList<Dictionary>) oIT.readObject();
                
    f.close();
                
    oIT.close();
            } catch (
    FileNotFoundException ex) {
                
    Logger.getLogger(ObjectDictionary.class.getName()).log(Level.SEVEREnullex);
            } catch (
    IOException ex) {
                
    Logger.getLogger(ObjectDictionary.class.getName()).log(Level.SEVEREnullex);
            } catch (
    ClassNotFoundException ex) {
                
    Logger.getLogger(ObjectDictionary.class.getName()).log(Level.SEVEREnullex);
            }
       
            
    String tuCanTra;
            
    boolean found false;
            
    System.out.print("Nhap tu can tra nghia: ");
            
    tuCanTra input.nextLine();
            for (
    int i 0listDic2.size(); i++) {
                if ( 
    listDic2.get(i).getWord().equalsIgnoreCase(tuCanTra)) {
                    
    System.out.println("Tim thay tu can tra");
                
    System.out.println(listDic2.get(i).getWord() + ": " listDic2.get(i).getMeaning());
                
    found true;
                break;
                }
            }
            if ( !
    found)
                
    System.out.println("Khong tim thay tu can tra");
        }
    }
  12. thanhdat86

    thanhdat86 New Member

    MyUnit35 (open)

    PHP:
    package hoc.java;
     
     
     
     
    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.ArrayList;
    import java.util.Scanner;
     
     
     
     
    public class 
    Unit35 {
    static 
    int soTu;
     
     
     
     
    public static 
    void main(String[] args) {
    Unit35 u = new Unit35();
    Scanner in = new Scanner(System.in);
    System.out.println("Nhap so tu: ");
    soTu in.nextInt();
    u.outputTuDien();
    u.inputTuDien();
    }
     
     
     
     
    public 
    void outputTuDien() {
    Scanner in = new Scanner(System.in);
    try {
    FileOutputStream f = new FileOutputStream("C:\\tudien.dat");
    ObjectOutputStream obj = new ObjectOutputStream(f);
    ArrayList<TuDien2listTuDien = new ArrayList();
    for (
    int i 0soTui++) {
    TuDien2 x = new TuDien2();
    System.out.print("Nhap tu: ");
    x.setTu(in.nextLine());
    System.out.print("Nghia tu: ");
    x.setNghia(in.nextLine());
    listTuDien.add(x);
    }
    obj.writeObject(listTuDien);
    obj.close();
    f.close();
    } catch (
    IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
     
     
     
     
    }
     
     
     
     
    public 
    void inputTuDien() {
    try {
    FileInputStream file = new FileInputStream("C:\\tudien.dat");
    ObjectInputStream oIT = new ObjectInputStream(file);
    ArrayList<TuDien2listTuDien2 = new ArrayList();
    TuDien2 x = new TuDien2();
    listTuDien2 = (ArrayList<TuDien2>) oIT.readObject();
    for (
    int i 0soTui++) {
    System.out.println(listTuDien2.get(i).getTu());
    System.out.println(listTuDien2.get(i).getNghia());
    }
    }
     
     
     
     
    catch (
    IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (
    ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
     
     
     
     
    }
    }
     
     
     
     
    class 
    TuDien2 implements Serializable {
    private 
    String tu;
    private 
    String nghia;
     
     
     
     
    public 
    String getTu() {
    return 
    tu;
    }
     
     
     
     
    public 
    void setTu(String tu) {
    this.tu tu;
    }
     
     
     
     
    public 
    String getNghia() {
    return 
    nghia;
    }
     
     
     
     
    public 
    void setNghia(String nghia) {
    this.nghia nghia;
    }
     
     
     
     
    }
  13. NHATTA

    NHATTA Member

    bài của mình

    xxxxxxxxxxxxxx (open)
    PHP:
     
    package Paractice
    ;
     
    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.ArrayList;
    import java.util.Scanner;
     
    public class 
    Dictionary {
     
        static 
    Scanner input = new Scanner(System.in);
     
        public static 
    void main(String[] argsthrows IOException {
            
    ArrayList<WordslistDirec2 = new ArrayList<Words>();
     
            
    System.out.print("Input paths file:");
            
    String paths input.nextLine();
            
    System.out.print("Amount words:");
            
    int n input.nextInt();
            
    input.nextLine();
     
            
    Dictionary dic = new Dictionary();
     
            
    dic.inputData(pathsn);
     
            
    dic.ReadFileandsave(pathslistDirec2);
            
    dic.searchWords(pathslistDirec2"hello");
        }
     
        public 
    void inputData(String pathsint n) {
            
    ArrayList<WordslistDirec = new ArrayList<Words>();
     
            
    Scanner input1 = new Scanner(System.in);
            for (
    int i 0ni++) {
                
    Words x = new Words();
     
                
    System.out.println("Words " " is the:");
                
    System.out.print("Words:");
                
    String words input1.nextLine();
                
    System.out.print("Mean:");
                
    String mean input1.nextLine();
     
                
    x.setWords(words);
                
    x.setMean(mean);
     
                
    listDirec.add(x);
            }
     
            try {
                
    FileOutputStream f = new FileOutputStream(paths);
                
    ObjectOutputStream oOT = new ObjectOutputStream(f);
                
    oOT.writeObject(listDirec);
     
                
    oOT.close();
                
    f.close();
            } catch (
    IOException e) {
                
    // TODO Auto-generated catch block
                
    System.out.println("Error!!" e);
                
    // e.printStackTrace();
            
    }
     
            
    input1.close();
        }
     
        @
    SuppressWarnings("unchecked")
        public 
    void ReadFileandsave(String pathsArrayList<WordslistDirec2) {
     
            try {
                
    FileInputStream fi = new FileInputStream(paths);
                
    ObjectInputStream oIT = new ObjectInputStream(fi);
                
    listDirec2 = (ArrayList<Words>) oIT.readObject();
                
    oIT.close();
                
    fi.close();
            } catch (
    IOException ex) {
                
    System.out.println("Error!");
            } catch (
    ClassNotFoundException ec) {
                
    System.out.println("Not found class");
            }
     
            
    System.out.println("List Word in dictionary!!");
            for (
    int i 0listDirec2.size(); i++) {
                
    System.out.println("Word: " listDirec2.get(i).getWords()
                        + 
    " mean: " listDirec2.get(i).getMean());
            }
        }
     
        @
    SuppressWarnings("unchecked")
        public 
    void searchWords(String pathsArrayList<WordslistDirec2,
                
    String words) {
     
            try {
                
    FileInputStream fi = new FileInputStream(paths);
                
    ObjectInputStream oIT = new ObjectInputStream(fi);
                
    listDirec2 = (ArrayList<Words>) oIT.readObject();
                
    oIT.close();
                
    fi.close();
            } catch (
    IOException ex) {
                
    System.out.println("Error!");
            } catch (
    ClassNotFoundException ec) {
                
    System.out.println("Not found class");
            }
     
            for (
    int i 0listDirec2.size(); i++) {
                if (
    words.compareTo(listDirec2.get(i).getWords()) == 0) {
                    
    System.out.println("Have words to find");
                    
    System.out.println("Words:" listDirec2.get(i).getWords());
                    
    System.out.println("Mean:" listDirec2.get(i).getMean());
                }
            }
        }
    }
     
    class 
    Words implements Serializable {
        
    /**
         *
         */
        
    private static final long serialVersionUID 1L;
        private 
    String words;
        private 
    String mean;
     
        public 
    String getWords() {
            return 
    words;
        }
     
        public 
    void setWords(String words) {
            
    this.words words;
        }
     
        public 
    String getMean() {
            return 
    mean;
        }
     
        public 
    void setMean(String mean) {
            
    this.mean mean;
        }
     
    }
     
  14. cowboyusa

    cowboyusa New Member

    Code (open)

    PHP:
    package nhansu;
     
     
     
     
    import java.awt.List;
    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.ArrayList;
    import java.util.Scanner;
     
     
     
     
    public class 
    Unit35 {
    public static 
    void main(String[] args)throws IOException{
     
     
     
     
    ArrayList<TuDien> list =new ArrayList<TuDien>();
    ArrayList<TuDienlist1 =new ArrayList<TuDien>();
    Scanner sc=new Scanner(System.in);
    System.out.println("Nhap so tu: ");
    int n=sc.nextInt();
    for(
    int i=0;i<n;i++){
    TuDien td=new TuDien();
    Scanner sc1=new Scanner(System.in);
    System.out.println("Tu thu "+(i+1)+":");
    System.out.println("Nhap tu:");
    td.setTu(sc1.nextLine());
    System.out.println("Nhap nghia: ");
    td.setNghia(sc1.nextLine());
    list.
    add(td);
    }
    try {
    FileOutputStream fout=new FileOutputStream("E:\\tudien.dat");
    ObjectOutputStream opout=new ObjectOutputStream(fout);
    opout.writeObject(list);
    fout.close();
    opout.close();
    } catch (
    Exception e) {
    System.out.println("Write file Error");
    // TODO: handle exception
    }
     
    Scanner sc2=new Scanner(System.in);
    System.out.println("Nhap tu can tim kiem:");
    String find=sc2.nextLine();
    try {
    FileInputStream fin=new FileInputStream("E:\\tudien.dat");
    ObjectInputStream opin=new ObjectInputStream(fin);
    list1=(ArrayList<TuDien>)opin.readObject();
    fin.close();
    opin.close();
    } catch (
    Exception e) {
    System.out.println("Read file Error");
    // TODO: handle exception
    }
    for(
    int i=0;i<list.size();i++)
    {
    if(
    find.equals(list1.get(i).getTu())){
    System.out.println("Ten:"+list1.get(i).getTu()+"\r Nghia:"+list1.get(i).getNghia());
    }
    }
    }
    }
     
     
     
     
    class 
    TuDien implements Serializable{
    public 
    String tu;
    public 
    String nghia;
    public 
    String getTu() {
    return 
    tu;
    }
    public 
    void setTu(String tu) {
    this.tu tu;
    }
    public 
    String getNghia() {
    return 
    nghia;
    }
    public 
    void setNghia(String nghia) {
    this.nghia nghia;
    }
    }
     
     
     
     
     
     
     

    [​IMG][/URL][/IMG]
    ai xem hộ mình lỗi này với
  15. cowboyusa

    cowboyusa New Member

    Exception in thread "main" java.lang.NoSuchMethodError: nhansu.TuDien.setTu(Ljava/lang/String;)V
    at nhansu.Unit35.main(Unit35.java:26)
  16. pndhieu_96

    pndhieu_96 New Member

    cho em hỏi dòng này nghĩa là gì ạ
    Logger.getLogger(JavaAndroidVn.class.getName()).log(Level.SEVERE, null, ex);
    }

Chia sẻ trang này