当前位置: 代码迷 >> Java相关 >> 初学小白,求大神关于Java的输入流的有关问题,实体,函数,返回值傻傻分不清。
  详细解决方案

初学小白,求大神关于Java的输入流的有关问题,实体,函数,返回值傻傻分不清。

热度:28   发布时间:2016-04-22 20:02:48.0
初学小白,求大神关于Java的输入流的问题,实体,函数,返回值傻傻分不清。。。


我在实体类里面定义了一个注册账号的方法,在写入文件的时候不知道该怎么往里存啊,请大神给指点指点!!

public  void register(String uname,String pwd){
Register register=new Register();

try {
ObjectOutputStream oos=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("d:\\55.txt")));
oos.write(register.setUserName(uname));
oos.write(register.setPwd(pwd));

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}



------解决思路----------------------
ObjectOutputStream是输出对象流的
不能序列化类属性,除非你的setXXX返回的是可序列的对象
首先你的对象必须可以被序列化,继承serializable接口
然后定义一个对象,并初始化
调用对象输出流的方法writeObject(Object object)即可存储
反序列化直接读取即可
至于怎么序列化成二进制这个不用你操心
或者用其他输出流直接存类属性也行

------解决思路----------------------
public  void register(String uname,String pwd){
Register register=new Register(); //前提:Register可以被序列化
register.setUserName(uname);
register.setPwd(pwd);


try {
ObjectOutputStream oos=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("d:\\55.txt")));
oos.writeObject(register);


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
oos.close();
}
}
  相关解决方案