http://bbs.csdn.net/topics/390363211 [如何将 hashMap 写入到文件中]
学生信息系统,将学生信息从键盘输入到集合map中,再从集合写入文件。
又从文件读取写入集合。
进行学生信息的 录入、查询。
package usst.student;
import java.io.*;
import java.util.*;
class Student implements Serializable{ //支持 java.io.Serializable接口
private String name;
private String grade;
public Student(String name,String grade){
this.name=name;
this.grade=grade;
}
public String getName(){
return name;
}
public String getGrade(){
return grade;
}
public String toString(){
return name+ ":"+grade;
}
}
public class Test {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
// TODO Auto-generated method stub
HashMap<String, Student> map = new HashMap<String, Student>();
HashMap<String,String> map2 = new HashMap();
Scanner in = new Scanner(System.in);
//录入学生信息,保存在map中
System.out.println("*****开始录入信息*****");
boolean a=true;
while(a){
System.out.println("请输入学生姓名,学生成绩:");
String name = in.next();
String grade =in.next();
Student stu = new Student(name,grade);
map.put(name, stu);
System.out.print("是否继续录入? 1.继续输入 or 2.结束输入?");
if(in.nextInt()==2){
a=false;}
}
System.out.println("******录入结束*******");
//将map中得信息存储到文件中
FileOutputStream fos = new FileOutputStream(".//file.txt"); // 课本 p220
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(map);
//把文件中的信息读取到map2中
FileInputStream fis = new FileInputStream(".//file.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
map2 = (HashMap<String, String>) ois.readObject();
//从map2中检索学生姓名查询成绩
System.out.println("*****开始查询信息*****");
boolean b=true;
while(b){
System.out.println("请输入学生姓名");
String key=in.next();
Object element=map2.get(key);
System.out.println(element);
System.out.println("还需要继续查询吗?1。继续查询 or 2.停止查询返回界面?");
int asking=in.nextInt();
if(asking==2){
b=false;
}
}
//从map中打印输出所有学生的成绩列表
System.out.println("*****打印出所有学生信息********");
Iterator itor = map2.keySet().iterator(); // hashMap 的迭代器操作
while(itor.hasNext()){
Object key = itor.next();
Object element = map2.get(key);
System.out.println(element);
}
}
}
// http://bbs.csdn.net/topics/390363211 ([如何将 hashMap 写入到文件中],使用了对象流 ObjectOutputStream,支持 java.io.Serializable接口)