您的位置:首页 > 其它

输入输出流操作对象

2016-12-27 17:04 330 查看
**
* 要求用户控制台输入想输入的员工人数(至少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-18
public 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
解析完毕
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: