import java.io.*;public class Try
{
public static void main(String args[]) throws Exception
{
FileOutputStream fout=new FileOutputStream("E:\\qq.txt",true);
ObjectOutputStream oout=new ObjectOutputStream(fout);
Client client=new Client(8,"hijilmn");
oout.writeObject(client);
Client client2=new Client(3,"wuwenyu");
oout.writeObject(client);
oout.close();
fout.close(); FileInputStream fin=new FileInputStream("E:\\qq.txt");
ObjectInputStream oin=new ObjectInputStream(fin);
Client client3=(Client)oin.readObject();
System.out.println(client3);
client3=(Client)oin.readObject();
System.out.println(client3);
oin.close();
fin.close();
}
}class Client implements Serializable
{
public int num;
public String name; public Client(int num,String name)
{
this.num=num;
this.name=name;
} public String toString()
{
return "num="+num+", name="+name;
}
}
为什么输出的是同一个人名?输出如下:
num=8,name=hijilmn
num=8,name=hijilmn
{
public static void main(String args[]) throws Exception
{
FileOutputStream fout=new FileOutputStream("E:\\qq.txt",true);
ObjectOutputStream oout=new ObjectOutputStream(fout);
Client client=new Client(8,"hijilmn");
oout.writeObject(client);
Client client2=new Client(3,"wuwenyu");
oout.writeObject(client);
oout.close();
fout.close(); FileInputStream fin=new FileInputStream("E:\\qq.txt");
ObjectInputStream oin=new ObjectInputStream(fin);
Client client3=(Client)oin.readObject();
System.out.println(client3);
client3=(Client)oin.readObject();
System.out.println(client3);
oin.close();
fin.close();
}
}class Client implements Serializable
{
public int num;
public String name; public Client(int num,String name)
{
this.num=num;
this.name=name;
} public String toString()
{
return "num="+num+", name="+name;
}
}
为什么输出的是同一个人名?输出如下:
num=8,name=hijilmn
num=8,name=hijilmn
解决方案 »
- MyEclipse的问题
- Linux下如何访问jar包同位置的文件(从jar包class文件访问)
- 谁能帮我在Jtextare上加一个滚动条啊?
- 求一份线程池的代码(分不是问题 可以追加)
- java高手,大侠,请进,麻烦了
- double 转换成 int?
- java开发数据库有优势吗??
- 关于验证SQL语句的问题!!!!!!!!!!!!!!
- weblogic_sp.jar这个文件我没有找到?还有的问题再下面问
- 100分求weblogic的问题
- tomcat 6 连接池
- 真心的希望大家可以帮助我哈!我不知道怎么读JAVA程序,我们的老师要求我们把它的运行过程写下来,而且是图解的过程!我们刚刚学习的,我们实习任务就是这但是我真的完成不来!还有程序的源代码在文章内容里,希望可以得到大家的鼎力帮助哈!在此先谢谢你们了哈!
System.out.println(client3);
client3=(Client)oin.readObject();
System.out.println(client3);
这两句好像一样啊,都是client3
//发表于:2008-11-28 23:27:45 楼主
import java.io.*; public class Try
{
public static void main(String args[]) throws Exception
{
FileOutputStream fout=new FileOutputStream("E:\\qq.txt");
ObjectOutputStream oout=new ObjectOutputStream(fout);
Client client1=new Client(8,"hijilmn");
oout.writeObject(client1);
Client client2=new Client(3,"wuwenyu");
oout.writeObject(client2);
oout.close();
fout.close(); FileInputStream fin=new FileInputStream("E:\\qq.txt");
ObjectInputStream oin=new ObjectInputStream(fin);
Client client3=(Client)oin.readObject();
System.out.println(client3);
Client client4=(Client)oin.readObject();
System.out.println(client4);
oin.close();
fin.close();
}
} class Client implements Serializable
{
public int num;
public String name; public Client(int num,String name)
{
this.num=num;
this.name=name;
} public String toString()
{
return "num="+num+", name="+name;
}
}
Client client=new Client(8,"hijilmn");
oout.writeObject(client);
Client client2=new Client(3,"wuwenyu");
oout.writeObject(client); //client改为client2
import java.io.*; public class Try
{
public static void main(String args[]) throws Exception
{
FileOutputStream fout=new FileOutputStream("E:\\qq.txt",true);
ObjectOutputStream oout=new ObjectOutputStream(fout);
Client client=new Client(8,"hijilmn");
oout.writeObject(client);
Client client2=new Client(3,"wuwenyu");
//很明显,这里错了,两次writeObject都写进的是一样的,改成client2就成了.....
oout.writeObject(client2);
oout.close();
fout.close(); FileInputStream fin=new FileInputStream("E:\\qq.txt");
ObjectInputStream oin=new ObjectInputStream(fin);
Client client3=(Client)oin.readObject();
System.out.println(client3);
client3=(Client)oin.readObject();
System.out.println(client3);
oin.close();
fin.close();
}
}
{
public static void main(String args[]) throws Exception
{
FileOutputStream fout=new FileOutputStream("E:\\qq.txt",true);
ObjectOutputStream oout=new ObjectOutputStream(fout);
Client client=new Client(8,"hijilmn");
oout.writeObject(client);
Client client2=new Client(3,"wuwenyu");
oout.writeObject(client2);
oout.close();
fout.close(); FileInputStream fin=new FileInputStream("E:\\qq.txt");
ObjectInputStream oin=new ObjectInputStream(fin);
Client client3=(Client)oin.readObject();
System.out.println(client3);
client3=(Client)oin.readObject();
System.out.println(client3);
oin.close();
fin.close();
}
}class Client implements Serializable
{
public int num;
public String name; public Client(int num,String name)
{
this.num=num;
this.name=name;
} public String toString()
{
return "num="+num+", name="+name;
}
} num=8, name=hijilmn
num=3, name=wuwenyu
改成下面的这样:
FileOutputStream fout=new FileOutputStream("E:\\qq.txt",true);
这样才能保证下次写入的东西不会覆盖前面写入的东西,当用了true后,就是在你前一次写入的后面添加新的信息而不覆盖原始的信息,如果不写true的话,系统默认为FALSE,覆盖原始的信息!!!
这个小问题需要多多注意,其实你改不改变client无所谓,因为当你new一个新对象的时候分配的内存地址是不同的,jvm还是能找到相应的对象;当然这样写别人不容易看懂你写的程序,不建议这样写!!!