2019年3月8日,序列化

java源文件分享地址:java

連接:https://pan.baidu.com/s/10susCDfNmjYsd3pTlzbrcg
提取碼:7y20
複製這段內容後打開百度網盤手機App,操做更方便哦api

 

做業一:app

編寫代碼爲:dom

package com.zuoye;

import java.io.*;

public class PetTest {
    public static void main(String[] args) {
        FileInputStream fis = null;
        InputStreamReader is = null;
        BufferedReader br = null;

        Writer fw= null;
        BufferedWriter bw = null;

        try {
            //讀取pet.template文件中的信息
            fis = new FileInputStream("g:\\新建文件夾\\pet.template");
            is = new InputStreamReader(fis,"GBK");
            br = new BufferedReader(is);
            String line = "";
            StringBuffer sbf = new StringBuffer();
            while ((line = br.readLine())!=null){
                sbf.append(line);
            }
            System.out.println("替換前:"+sbf.toString());  //打印讀取的信息

            //替換名詞
            String result = sbf.toString().replace("{name}","旺財").replace("{type}","拉布拉多犬").replace("{master}","張三");
            System.out.println("替換後:"+result);

            //將讀取的寵物信息寫入新的pet.txt文件中

            fw = new FileWriter("g:\\新建文件夾\\pet.txt");
            bw = new BufferedWriter(fw);
            bw.write(result);
            System.out.println("寫入新文件成功!");
            bw.flush();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                bw.close();
                fw.close();
                br.close();
                is.close();
                fis.close();
//                re.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

輸出結果爲:ide

替換前:您好!個人名字是{name},我是一隻{type}。個人主人是{master}
替換後:您好!個人名字是旺財,我是一隻拉布拉多犬。個人主人是張三
寫入新文件成功!

做業二:測試

  用序列化和反序列化  寫一個能夠屢次註冊,而且能夠用註冊過的全部用戶登陸的功能,要求每次註冊一個用戶,當再次註冊用戶時,不能把以前註冊過的用戶覆蓋掉

編寫代碼爲:this

一、用戶類:idea

package com.zuoye.zuoye;

import java.io.Serializable;

public class User implements Serializable {
    private int id;
    private String name;
    private String password;
    private String phone;

    public User() {
    }

    public User(int id, String name, String password, String phone) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.phone = phone;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

二、註冊和登陸方法類spa

package com.zuoye.zuoye;

import com.sun.corba.se.impl.orbutil.ObjectWriter;

import java.io.*;
import java.util.*;

public class Register {
    List<User> list = new ArrayList<User>();
    Scanner input = new Scanner(System.in);

    public void zhuCe() {
        System.out.print("請輸入用戶名:");
        String name = input.next();
        System.out.print("請輸入密碼:");
        String password = input.next();
        System.out.print("請輸入您的手機號:");
        String phone = input.next();
        int id = 0;
        Boolean flag = false;
        do{
            Random random = new Random();
            id = random.nextInt(10000);
            if(id>999){
                for(int i = 0 ;i<list.size();i++){
                    if(id==list.get(i).getId()){
                        flag = true;
                        break;
                    }
                }
                break;
            }else {
                flag =true;
            }
        }while (flag);
        User user = new User(id,name,password,phone);
        list.add(user);

        //新建文件,用於保存註冊信息
//        String fileName = Integer.toString(user.getId());
//        File file = new File("g:\\test",fileName+".txt");
//
//        try {
//            file.createNewFile();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }

        FileOutputStream fos = null;
        ObjectOutputStream oos = null;
        try {
            fos = new FileOutputStream("g:\\test\\user.txt");
            oos = new ObjectOutputStream(fos);
            oos.writeObject(list);

            System.out.println("註冊成功!您的會員號爲:"+user.getId());
            oos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                oos.close();
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }



    }
    public void dengRu(){
        int id = 0;
        do{
            System.out.print("請輸入註冊ID號:");
            Scanner input1 = new Scanner(System.in);
            try {
                id = input1.nextInt();
                break;
            }catch (Exception e){
                System.out.println("輸入有誤!");
            }
        }while (true);
        System.out.println("請輸入登陸密碼:");
        String password = input.next();

        FileInputStream fis = null;
        ObjectInputStream ois = null;

        try {
            fis = new FileInputStream("G:\\test\\user.txt");
            ois = new ObjectInputStream(fis);
            ArrayList<User> list1 = (ArrayList)ois.readObject();
            Boolean login = false;
            for(int i = 0; i<list1.size();i++){
                User user1 = list1.get(i);
                if(id==user1.getId()&&password.equals(user1.getPassword())){
                    login = true;
                    break;
                }
            }
            System.out.println(login?"登入成功!":"登入失敗!");


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            try {
                ois.close();
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }
}

三、測試類:code

package com.zuoye.zuoye;


import java.util.Scanner;

public class RegisterTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Register register = new Register();
        do{
            System.out.println("請選擇功能:一、登陸      二、註冊");
            String choice = input.next();
            switch (choice){
                case "1":
                    register.dengRu();
                    break;
                case "2":
                    register.zhuCe();
                    break;
                default:
                    System.out.println("輸入有誤!");
            }
        }while (true);


    }
}

輸出結果爲:

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" "-javaagent:G:\IntelliJ IDEA 2018.3.1\lib\idea_rt.jar=51904:G:\IntelliJ IDEA 2018.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_191\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar;G:\IO流\out\production\IO流" com.zuoye.zuoye.RegisterTest
請選擇功能:一、登陸      2、註冊
1
請輸入註冊ID號:6014
請輸入登陸密碼:
888888
登入成功!
請選擇功能:一、登陸      2、註冊
2
請輸入用戶名:admin
請輸入密碼:666666
請輸入您的手機號:18888888888
註冊成功!您的會員號爲:4688
請選擇功能:一、登陸      2、註冊
2
請輸入用戶名:user
請輸入密碼:12345678
請輸入您的手機號:18888888888
註冊成功!您的會員號爲:4783
請選擇功能:一、登陸      2、註冊
1
請輸入註冊ID號:4783
請輸入登陸密碼:
12345678
登入成功!
請選擇功能:一、登陸      二、註冊
相關文章
相關標籤/搜索