Java實現(xiàn)單人信息管理程序
本文實例為大家分享了Java實現(xiàn)單人信息管理程序的具體代碼,供大家參考,具體內(nèi)容如下
對前一個菜單程序進行擴充,要求增加一個人的完整信息,人的信息包括姓名和年齡。保存后也可以修改、刪除、查詢此信息。
可以使用對象序列化保存,需要增加文件操作類,專門負責保存和讀取文件的內(nèi)容,并修改 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){//通過構造方法設置屬性內(nèi)容 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(){//增加數(shù)據(jù)操作 InputData input = new InputData();//實例化輸入數(shù)據(jù)對象 FileOperate fo = new FileOperate("D://test.txt"); String name = input.getString("請輸入姓名:"); int age = input.getInt("請輸入年齡:","年齡必須是數(shù)字!"); Person per = new Person(name,age);//實例化 Person 對象 try { fo.save(per);//保存對象 }catch (Exception e){ e.printStackTrace(); } System.out.println("信息增加成功"); } public static void delete(){//刪除數(shù)據(jù)操作 FileOperate fo = new FileOperate("D://test.txt"); try{ fo.save(null);//清除對象 }catch (Exception e){ e.printStackTrace(); } System.out.println("信息刪除成功!"); } public static void update(){//修改數(shù)據(jù)操作 InputData input = new InputData();//實例化輸入數(shù)據(jù)對象 FileOperate fo = new FileOperate("D:\\test.txt"); Person per = null; try{ per = (Person)fo.load();//讀取數(shù)據(jù) }catch (Exception e1){ e1.printStackTrace(); } String name = input.getString("請輸入新的姓名(原姓名:" + per.getName() + "):"); int age = input.getInt("請輸入是新的年齡(原年齡:" + per.getAge() + ")","年齡必須是數(shù)字!"); 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); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式
MongoDB是一種非關系型數(shù)據(jù)庫,通過文檔存儲數(shù)據(jù),適用于大規(guī)模數(shù)據(jù)存儲和高并發(fā)訪問,這篇文章主要介紹了SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式,感興趣想要詳細了解可以參考下文2023-05-05使用Spring boot 的profile功能實現(xiàn)多環(huán)境配置自動切換
這篇文章主要介紹了使用Spring boot 的profile功能實現(xiàn)多環(huán)境配置自動切換的相關知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-11-11spring cloud gateway 限流的實現(xiàn)與原理
這篇文章主要介紹了spring cloud gateway 限流的實現(xiàn)與原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12Java Comparable和Comparator對比詳解
這篇文章主要介紹了Java Comparable和Comparator對比詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11Spring Boot中整合PageHelper實現(xiàn)分頁功能詳細步驟
在Spring Boot項目中整合PageHelper并實現(xiàn)分頁查詢功能的全部步驟,通過以上配置和代碼,我們可以輕松地實現(xiàn)數(shù)據(jù)庫分頁查詢,提高了開發(fā)效率并改善了用戶體驗,感興趣的朋友跟隨小編一起看看吧2024-05-05Java實現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例
這篇文章主要介紹了Java實現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例,幫助大家方便的進行文件格式轉(zhuǎn)換,完成需求,感興趣的朋友可以了解下2020-11-11