由于还没没学到数据库,目前就使用IO流存储文件信息以便程序读入读取。
基于这个前提,存储数据信息的步骤如下:
①创建需要储存信息的文件
File file=new File("文件路径");
if (!file.exists()){
try {
file.createNewFile();
HashSet<UidJid>list=new HashSet<>();
ObjectOutputStream ois=new ObjectOutputStream(new FileOutputStream("src/project02/information/yourWorkInformation.txt"));
ois.writeObject(list);
ois.flush();
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
②:将集合对象序列化存储到文件
HashSet<UidJid>list=new HashSet<>();
ObjectOutputStream ois=new ObjectOutputStream(new FileOutputStream("src/project02/information/yourWorkInformation.txt"));
ois.writeObject(list);
ois.flush();
ois.close();
这段代码是将集合内容序列化存储在文件中,当我们需要使用文件中的数据则需要通过反序列化把信息存入集合获得我们所需要的数据信息。
注:写入流在改变文件内容之后最好刷新一下再关闭。
③反序列化获取文件内容到集合:
而反序列化的流程如下:
public static void checkWork() throws IOException, ClassNotFoundException {
ObjectInputStream jis = new ObjectInputStream(new FileInputStream("src/project02/information/yourWorkInformation.txt"));
HashSet<UidJid> list = (HashSet<UidJid>)jis.readObject();
jis.close();
for (UidJid uidJid : list) {
if (uidJid.getUid().equals(CurrentUser.currentUser.getUid())){
ObjectInputStream ins=new ObjectInputStream(new FileInputStream(new File(JOB_INFORMATION)));
ArrayList<Job>jjs=(ArrayList<Job>)ins.readObject();
ins.close();
for (Job jj : jjs) {
if (jj.getJid().equals(uidJid.getJid())){
System.out.println(jj);
}
}
}
}
System.out.println("以下是您正在完成的工作。"+list);
jis.close();
}
读取文件,将文件内容读取到集合,遍历集合根据自身需要获取数据。