数据层用来存储数据。
这里采用对象读写,要注意的是数据层只跟逻辑层有关与表现层无关,还有,对象流的读写不能用avaliable来判断,要用异常来确定是否读到结束,因此,在用到对向流读的时候抓的异常要去掉(不输出异常信息),这是正常的。
数据层代码如下:
package cn.hncu.dao;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class addressDao {
public static Object[] read(String fileName) {
ArrayList<Object> list=new ArrayList<Object>();
ObjectInputStream in=null;
try {
in=new ObjectInputStream(new FileInputStream(fileName));
while(true){
list.add(in.readObject());
}
} catch (Exception e) {
}finally{
try {
if(in!=null){
in.close();
}
} catch (IOException e) {
throw new RuntimeException("关流失败");
}
}
Object objs[]=list.toArray();
if(objs==null){
return objs=new Object[0];
}
return objs;
}
public static boolean write(String fileName,Object[] objs) {
ObjectOutputStream out=null;
try {
out=new ObjectOutputStream(new FileOutputStream(fileName));
for(Object obj:objs){
out.writeObject(obj);
}
} catch (IOException e) {
e.printStackTrace();
return false;
}finally{
try {
if(out!=null){
out.close();
}
} catch (IOException e) {
throw new RuntimeException("关流失败");
}
}
return true;
}
}