输入输出流操作对象

来源:互联网 发布:nginx conf 配置php 编辑:程序博客网 时间:2024/05/16 08:47
** * 要求用户控制台输入想输入的员工人数(至少5个),然后依序输入员工信息,每行为 * 一条员工信息,格式如:张三,25,男,5000,2006-3-18 * 然后将该对象写入到文件<name>.obj并保存到当前项目根目录中,例如:张三.obj。 * @author Xiloer * */

代码如下:

public class Test03 {public static void main(String[] args) throws ParseException, IOException {int num = getSum();for(int i=1;i<=num;i++){System.out.println("请输入第"+i+"个员工信息:");//将当前员工信息写入文件Emp emp = writeEmp();wirteFile(emp);}System.out.println("解析完毕");}//员工人数限制public static int getSum(){Scanner scan = new Scanner(System.in);for(;;){System.out.println("请输入员工人数:");int num = Integer.parseInt(scan.nextLine().trim());if(num >= 5){scan.close();return num;}}}//将对象写入文件public static void wirteFile(Emp emp) throws IOException{FileOutputStream fos = new FileOutputStream(emp.getName()+".obj");ObjectOutputStream oos =new ObjectOutputStream(fos);oos.writeObject(emp);oos.close();}//传入一个员工的字符串信息,解析成员工对象--格式如:张三,25,男,5000,2006-3-18public static Emp writeEmp() throws ParseException{Scanner scan = new Scanner(System.in);String input = scan.nextLine().trim();String[] infor = input.split(",");String name = infor[0];int age = Integer.parseInt(infor[1]);String gender = infor[2];int salary = Integer.parseInt(infor[3]);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date hiredate = sdf.parse(infor[4]);scan.close();return new Emp(name,age,gender,salary,hiredate);}}
测试结果如下:

请输入员工人数:2请输入员工人数:3请输入员工人数:5请输入第1个员工信息:张三,25,男,5000,2006-3-18请输入第2个员工信息:李四,29,男,5000,2009-3-18请输入第3个员工信息:王五,10,男,5000,2008-08-25请输入第4个员工信息:莉莉丝,25,女,4500,2014-3-18请输入第5个员工信息:韩磊,21,男,3000,2006-5-24解析完毕



0 0