| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1081 人关注过本帖
标题:Serializable的使用如何实现在控制台,新增,查询实例化的对象
只看楼主 加入收藏
nuoyan1210
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-6
收藏
 问题点数:0 回复次数:5 
Serializable的使用如何实现在控制台,新增,查询实例化的对象
import *;

class mode implements Serializable
{
    //static final long serialVersionUID=123456L;
    static String m_name;
    String m_id;//学号
    String m_phonenumber;
    String m_sex;
    
    public mode(String name,String id,String phonenumber,String isman)
    {
        m_name=name;
        m_id=id;
        m_phonenumber=phonenumber;
        m_sex=isman;
    }//构造函数结束
    
    public static String mb_getname()
    {
    return m_name;
    }
    
    
    
    public void mb_output()
    {
    System.out.println("姓名:"+m_name);
    System.out.println("学号:"+m_id);
    System.out.println("手机号码:"+m_phonenumber);
    System.out.println("性别:"+m_sex);
    }//mb_output结束

}//类mode结束

public class shiyan3
{
    
static    String m_name;
    String m_id;//学号
    String m_phonenumber;
    String m_sex;
        
    public static void mb_printlnInfo()

    {
    System.out.println("查询还是新增???");
    System.out.println("\t 0 :退出; 1 : 新增 ;2 :查询");
    }
    

    public static int mb_getInt(BufferedReader f)
    {
        try
        {
            String s=f.readLine();
            int i=Integer.parseInt(s);
            return i;
        }
        catch(Exception e)
        {
            return -1;
        }//try_catch
        
        
    }//mb_get....
    

    public static String mb_getname()
    {
    return m_name;
    }
    
    public void mb_setname(String name)
    {
        m_name=name;
    }
    public void mb_setid(String id)
    {
        m_id=id;
    }
    public void mb_setphonenumber(String phonenumber)
    {
        m_phonenumber=phonenumber;
    }
    public void mb_setsex(String sex)
    {
        m_sex=sex;
    }
        
public static void main(String[] args)
{
    
    int i;                                                        [size=7][size=6][size=7]//得问老师,我没有初始化啊,咋不提示错误啊???不是说局部变量必须初始化吗??[/size][/size][/size]
    try
    {
        BufferedReader f=new BufferedReader(new InputStreamReader(System.in));
        do
        {
        mb_printlnInfo();
        i=mb_getInt(f);
        if(i==0)
            break;
            else if(i==1)
            {
            try
            {
                System.out.println("请输入姓名:");
                BufferedReader fname=new BufferedReader(new InputStreamReader(System.in));
                String name=fname.readLine();
                System.out.println("您输入了姓名:\n"+name+"\n\n\n请输入学号:");
                
                
                BufferedReader fid=new BufferedReader(new InputStreamReader(System.in));
                String id=fid.readLine();
                System.out.println("您输入了学号:"+id+"\n\n\n请输入手机号码:");
                
                
                BufferedReader fphonenumber=new BufferedReader(new InputStreamReader(System.in));
                String phonenumber=fphonenumber.readLine();
                System.out.println("你输入了手机号:"+phonenumber+"\n\n\n请输入性别:");
                
                
                BufferedReader fsex=new BufferedReader(new InputStreamReader(System.in));
                String sex=fsex.readLine();
            //    System.out.println("您输入了"+ex);
                System.out.println("您对应为"+name+"的学生信息录入完毕");
                
                System.out.println("\n");
                
            ObjectOutputStream f1=new ObjectOutputStream(new FileOutputStream("tongxun.dat"));
            mode s=new mode(name,id,phonenumber,sex);
            
        //    mode s=new mode("张三","0708114","13673508502","男");
        //    mode s1=new mode("李四","0708114","110120119","女");
            
            f1.writeObject(s);
            f1.close();
            }
            catch(Exception e)
            {
            System.out.println("异常发生:"+e);
            e.printStackTrace();    
            }//try-catch结束
        }
    
    
    
    
    
            else if(i==2)
            {
            
            try
            {
                System.out.println("请输入要查找的姓名:");
                BufferedReader fname2=new BufferedReader(new InputStreamReader(System.in));
                String    name2=(String) fname2.readLine();
            
                
                
                
            ObjectInputStream f2=new ObjectInputStream(new FileInputStream("tongxun.dat"));
            
            mode s=(mode)(f2.readObject());
            
        //    if (s.mb_getname()==name2)
            
        //    mode s1=(mode)(f2.readObject());
            s.mb_output();
            
        //    else System.out.println("无相关数据!!退出查找请输入:0\n请重新输入");
    
            f2.close();
            }
            catch(Exception e)
            {
            System.out.println("发生异常:"+e);
            e.printStackTrace();
            }//try-catch结束
            
            
        
            }//if else结束
            
                
            }while(true);//do while 结束
        f.close();
    }
    catch(Exception e)
    {
        System.out.println("发生异常:"+e);
        e.printStackTrace();
    }//try -catch 结束
    
    }
}    


在下写的源码如上,在控制台已经实现了,新增,就是在查询的时候老是出问题!
请教高人指点!!!!
搜索更多相关主题的帖子: 实例 控制台 查询 
2008-11-21 23:50
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
i在下面不是赋值了吗?所以不会报错。
不过如果你在try...catch外面使用i就会报错了,因为你在try里面赋值的,可能发生异常,赋值失败,在try外面使用可能就会为null。
查询,你只查了一个出来,用循环都查出来。
2008-11-24 09:51
nuoyan1210
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-6
收藏
得分:0 
回复 第2楼 huwangvs 的帖子
要是用循环,那怎么查询啊!能不能指点一下啊!
2008-11-25 00:11
nuoyan1210
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-6
收藏
得分:0 
回复 第2楼 huwangvs 的帖子
//static final long serialVersionUID=123456L;
还有啊 !这句话有什么必要写啊!我注释了!也没报错啊!
2008-11-25 00:17
huwangvs
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:764
专家分:0
注 册:2007-2-4
收藏
得分:0 
你直接可以用无限循环去读取,当读取不到的时候,会抛出异常,此时停止读取即可。
serialVersionUID那个标识我不是太清楚,只知道是个标示,去掉并没有关系的。
2008-11-25 10:55
nuoyan1210
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-6
收藏
得分:0 
回复 第4楼 nuoyan1210 的帖子
谢谢!!
但是无限循环我不会用!
呵呵!

正在尝试,把容器一起序列化!呵呵!
2008-11-25 15:04
快速回复:Serializable的使用如何实现在控制台,新增,查询实例化的对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved