Java實現單人資訊管理程式
阿新 • • 發佈:2020-02-14
本文例項為大家分享了Java實現單人資訊管理程式的具體程式碼,供大家參考,具體內容如下
對前一個選單程式進行擴充,要求增加一個人的完整資訊,人的資訊包括姓名和年齡。儲存後也可以修改、刪除、查詢此資訊。<
可以使用物件序列化儲存,需要增加檔案操作類,專門負責儲存和讀取檔案的內容,並修改 Operate 類,為其增加具體的操作:
文章目錄
一、增加檔案操作類
二、 Person 類
三、操作類
一、增加檔案操作類
package Chapter_9; import java.io.*; //此類專門用於儲存和讀取物件 public class FileOperate { private File file = null;//定義一個檔案物件 public FileOperate(String pathName){//通過構造方法傳遞檔案路徑 this.file = new File(pathName);//例項化File物件 } public boolean save(Object obj) throws Exception{//可以儲存物件 ObjectOutputStream oos = null;//物件輸出流 boolean flag = false;//定義操作標誌位 try{ oos = new ObjectOutputStream(new FileOutputStream(this.file));//例項化物件輸出流 oos.writeObject(obj);//儲存物件 flag = true; }catch (Exception e){ throw e;//有異常丟擲 }finally { if (oos != null){//判斷物件輸出流物件是否被例項化 oos.close();//不管是否有異常都要關閉 } } return flag; } public Object load()throws Exception{//讀取物件 Object obj = null;//接收儲存的物件 ObjectInputStream ois = null;//宣告物件輸入流 try{ ois = new ObjectInputStream(new FileInputStream(this.file));//例項化物件輸入流 obj = ois.readObject();//讀取物件 }catch (Exception e){ throw e; }finally { if (ois !=null){//判斷輸入流是否被例項化 ois.close();//關閉輸入流 } } return obj; } }
程式中的類的功能就是向程式中寫入物件和讀取物件,在操作時只需要傳入一個路徑即可
二、 Person 類
import java.io.*; public class Person implements Serializable {//此類的物件可以被序列化 private String name; private int age; public Person(String name,int age){//通過構造方法設定屬性內容 this.name = name; this.age = age; } public String toString(){ return "姓名:" + this.name + "; 年齡:" + this.age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
三、操作類
package Chapter_9; public class Operate { public static void add(){//增加資料操作 InputData input = new InputData();//例項化輸入資料物件 FileOperate fo = new FileOperate("D://test.txt"); String name = input.getString("請輸入姓名:"); int age = input.getInt("請輸入年齡:","年齡必須是數字!"); Person per = new Person(name,age);//例項化 Person 物件 try { fo.save(per);//儲存物件 }catch (Exception e){ e.printStackTrace(); } System.out.println("資訊增加成功"); } public static void delete(){//刪除資料操作 FileOperate fo = new FileOperate("D://test.txt"); try{ fo.save(null);//清除物件 }catch (Exception e){ e.printStackTrace(); } System.out.println("資訊刪除成功!"); } public static void update(){//修改資料操作 InputData input = new InputData();//例項化輸入資料物件 FileOperate fo = new FileOperate("D:\\test.txt"); Person per = null; try{ per = (Person)fo.load();//讀取資料 }catch (Exception e1){ e1.printStackTrace(); } String name = input.getString("請輸入新的姓名(原姓名:" + per.getName() + "):"); int age = input.getInt("請輸入是新的年齡(原年齡:" + per.getAge() + ")","年齡必須是數字!"); per = new Person(name,age);//重新例項化物件 try{ fo.save(per);//重新儲存物件 }catch (Exception e){ e.printStackTrace(); } System.out.println("資訊更新成功"); } public static void find(){ FileOperate fo = new FileOperate("D:\\test.txt"); Person per = null; try{ per = (Person)fo.load();//讀取物件 }catch (Exception e1){ e1.printStackTrace(); } System.out.println(per); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。