急!java新手求教!!关于从文件中读取hashmap的问题
用java做了一个学生信息管理系统,先在输入类输入信息写入hashmap再存到一个文件里,再在查询类读取文件中的hashmap,但是读取会显示hashmap为空,这是怎么...
用java做了一个学生信息管理系统,先在输入类输入信息写入hashmap再存到一个文件里,再在查询类读取文件中的hashmap,但是读取会显示hashmap为空,这是怎么回事呢??
输入部分:
try {
FileOutputStream fout=new FileOutputStream("学生信息.txt");
ObjectOutputStream out = new ObjectOutputStream(fout);
学生信息表.put(学号, student);
out.writeObject(学生信息表);
fout.close();
out.close();
}
catch(Exception ee)
{}
查询部分的代码:
if(学号.length()!=0)
try
{
FileInputStream fin=new FileInputStream(file);
ObjectInputStream in=new ObjectInputStream (fin);
学生信息表=(HashMap<String,Student>)in.readObject();
fin.close();
in.close();
}
catch(Exception ee)
{}
if((学生信息表!=null)&&(学生信息表.containsKey(学号)))
{
Student s=(Student)(学生信息表.get(学号));
name.setText(s.getName().toString());
major.setText(s.getMajor().toString());
grade.setText(s.getGrade().toString());
birthday.setText(s.getBirthday().toString());
} 展开
输入部分:
try {
FileOutputStream fout=new FileOutputStream("学生信息.txt");
ObjectOutputStream out = new ObjectOutputStream(fout);
学生信息表.put(学号, student);
out.writeObject(学生信息表);
fout.close();
out.close();
}
catch(Exception ee)
{}
查询部分的代码:
if(学号.length()!=0)
try
{
FileInputStream fin=new FileInputStream(file);
ObjectInputStream in=new ObjectInputStream (fin);
学生信息表=(HashMap<String,Student>)in.readObject();
fin.close();
in.close();
}
catch(Exception ee)
{}
if((学生信息表!=null)&&(学生信息表.containsKey(学号)))
{
Student s=(Student)(学生信息表.get(学号));
name.setText(s.getName().toString());
major.setText(s.getMajor().toString());
grade.setText(s.getGrade().toString());
birthday.setText(s.getBirthday().toString());
} 展开
1个回答
展开全部
你是不知道怎么计算差值?
如果是的话 可以这么计算
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
Date parse = format.parse("2015/3/4 12:12:12:122");//这个是你的那个时间值
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//时间戳
String format2 = dateFormat.format(parse);
System.out.println(format2);
} catch (ParseException e) {
e.printStackTrace();
}
}
再或者,你可以直接使用String类的方法,将获取的时间直接的进行replace,subString等操作,直接变成纯数字的字符串,然后转换成Integer进行减法操作
如果是的话 可以这么计算
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
Date parse = format.parse("2015/3/4 12:12:12:122");//这个是你的那个时间值
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");//时间戳
String format2 = dateFormat.format(parse);
System.out.println(format2);
} catch (ParseException e) {
e.printStackTrace();
}
}
再或者,你可以直接使用String类的方法,将获取的时间直接的进行replace,subString等操作,直接变成纯数字的字符串,然后转换成Integer进行减法操作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询