想了一天,晚上又整了两个小时,马上就要放弃了,想来又觉着一天的努力可惜了。出去理清了下思路,回来看了下代码,只是把应该把FileInputStream("str",true),写成false
就可以成功了。看来,不论成功大小,都不是那么的遥不可及,有时也就是那么坚持一小下。
package com.jereh.demo.model;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Entity implements Serializable{
private String username ;
private String password ;
int age ;
Date date ;
public Entity(){}
public Entity(String username,String password,int age)
{
this.username=username;
this.password=password;
this.age=age;
}
public int getAge() {
return age;
}
public Date getDate() {
return date;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setAge(int age) {
this.age = age;
}
public void setDate(String dateStr) {
this.date = this.toDate(dateStr);
}
public void setDate(Date dateStr) {
this.date = dateStr;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
/**
* 实现对用户输入的注册日期字符串进行转换
* @param str
* @return
*/
private Date toDate(String str)
{
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
try {
this.date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return this.date;
}
}
package com.jereh.demo.model;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class EntityService {
Entity user =null;
List<Entity> users = new ArrayList<Entity>();
public EntityService(){
//this.user = new Entity("zhang","zhang",12) ;
this.user = new Entity();
}
public List<Entity> getUser() {
// users.add(user);
return users;
}
public void setUser(Entity user) {
this.user = user;
}
/**
* 返回一个字符串
* @return
*/
private String getStringInfo()
{
Scanner scan = new Scanner(System.in) ;
return scan.next(); // 返回一个字符串
}
private int getInt()
{
Scanner scan = new Scanner(System.in) ;
return scan.nextInt();
}
public void getUserName()
{
System.out.print("请输入用户名:");
String str = this.getStringInfo();
user.setUsername(str) ;
}
private void getPassword()
{
System.out.print("请输入密码:");
user.setPassword(this.getStringInfo());
}
private void getAge()
{
System.out.print("请输入年龄:") ;
user.setAge(this.getInt());
}
private void getRegDate()
{
//System.out.print("请输入注册日期:");
Date date = new Date() ;
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date)) ;
user.setDate(date);
}
public void serivce()
{
getUserName();
getPassword();
getAge();
getRegDate();
this.registerInfo();
this.getRegisterInfo();
}
private void registerInfo()
{
ObjectOutput is = null ;
ObjectInput oi = null;
//
File file = new File("d:\\Reg.txt") ;
try {
if(file.length()==0)
{
this.users.add(this.user);
System.out.println("*888888") ;
is = new ObjectOutputStream(new FileOutputStream(file,true)) ;
is.writeObject(this.users);
}else
{
oi = new ObjectInputStream(new FileInputStream(file)) ;
ArrayList<Entity> users = null ;
Object obj = null ;
try {
obj = oi.readObject();
users = (ArrayList)obj;
users.add(this.user);
is = new ObjectOutputStream(new FileOutputStream(file,false)) ;
is.writeObject(users);// 重新写入
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally
{
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void getRegisterInfo()
{
ObjectInput oi =null;
try {
oi = new ObjectInputStream(new FileInputStream("d:\\Reg.txt")) ;
List<Entity> users = null;
users=(ArrayList<Entity>)(oi.readObject());
System.out.println(users.size()) ;
for(Entity oneUser:users)
{
System.out.println("用户名: "+oneUser.getUsername()+"\n"+"用户密码:"+oneUser.getPassword()+"\n"+"年龄:"+oneUser.getAge()+"\n"+"注册日期:"+new SimpleDateFormat("yyyy-MM-dd").format(oneUser.getDate())+"\n") ;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally
{
try {
oi.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.jereh.demo.model;
public class TestRegister {
EntityService es = new EntityService();
public static void main(String args[])
{
new TestRegister().getReg();
}
private void getReg()
{
es.serivce();
}
}