当前位置: 技术问答>java相关
把对象存储在文件中的问题!!
来源: 互联网 发布时间:2015-08-21
本文导语: 我打算做一个画图程序,要画圆,三角,直线。还要有删除,修改,移动等功能。而且还要可以保存之,下次可以打开继续编辑。 我应该怎样把一组对象存储到文件中,该怎么写!!越详细越好!能提供类似问题的...
我打算做一个画图程序,要画圆,三角,直线。还要有删除,修改,移动等功能。而且还要可以保存之,下次可以打开继续编辑。
我应该怎样把一组对象存储到文件中,该怎么写!!越详细越好!能提供类似问题的代码也行!
我应该怎样把一组对象存储到文件中,该怎么写!!越详细越好!能提供类似问题的代码也行!
|
给你一个例子(已经调试过了,可以拿去体验一下):
renxd 是一个保存我名字和年龄的类:
package serize;
public class renxd implements java.io.Serializable
{
String name;
int age;
public renxd()
{
name = "renxd";
age = 23;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
现在我将他序列化保存在一个文件中,然后再从这个文件中读出来:
package serize;
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: test.java
import java.io.*;
import java.util.Date;
public class test
{
renxd r;
test()
{
//Date date = new Date();
r = new renxd();
String s = new String();
int x = 0;
try
{
FileOutputStream fileoutputstream = new FileOutputStream("dateFile.txt");
ObjectOutputStream objectoutputstream = new ObjectOutputStream(fileoutputstream);
objectoutputstream.writeObject(r);
objectoutputstream.flush();
}
catch(Exception exception)
{
System.out.println("erro!!!");
}
try
{
FileInputStream fileinputstream = new FileInputStream("dateFile.txt");
ObjectInputStream objectinputstream = new ObjectInputStream(fileinputstream);
//Date date1 = (Date)objectinputstream.readObject();
renxd z = (renxd)objectinputstream.readObject();
//s = date1.toString();
s = z.getName();
x = z.getAge();
objectinputstream.close();
}
catch(Exception exception1)
{
System.out.println("in error!!!");
}
int l = s.length();
System.out.println(s+" "+l);
System.out.println(x);
}
public static void main(String args[])
{
test t = new test();
}
}
renxd 是一个保存我名字和年龄的类:
package serize;
public class renxd implements java.io.Serializable
{
String name;
int age;
public renxd()
{
name = "renxd";
age = 23;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
现在我将他序列化保存在一个文件中,然后再从这个文件中读出来:
package serize;
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: test.java
import java.io.*;
import java.util.Date;
public class test
{
renxd r;
test()
{
//Date date = new Date();
r = new renxd();
String s = new String();
int x = 0;
try
{
FileOutputStream fileoutputstream = new FileOutputStream("dateFile.txt");
ObjectOutputStream objectoutputstream = new ObjectOutputStream(fileoutputstream);
objectoutputstream.writeObject(r);
objectoutputstream.flush();
}
catch(Exception exception)
{
System.out.println("erro!!!");
}
try
{
FileInputStream fileinputstream = new FileInputStream("dateFile.txt");
ObjectInputStream objectinputstream = new ObjectInputStream(fileinputstream);
//Date date1 = (Date)objectinputstream.readObject();
renxd z = (renxd)objectinputstream.readObject();
//s = date1.toString();
s = z.getName();
x = z.getAge();
objectinputstream.close();
}
catch(Exception exception1)
{
System.out.println("in error!!!");
}
int l = s.length();
System.out.println(s+" "+l);
System.out.println(x);
}
public static void main(String args[])
{
test t = new test();
}
}
|
那要看自己的需要,对象序列化很容易的。比如你把圆,三角等都画到了panel上,那你就直接把panel序列化就可以了。
|
在你的类里实现序列化接口就行了。
|
http://java.sun.com/docs/books/tutorial/essential/io/providing.html