当前页面: 开发资料首页 → J2SE 专题 → java对象序列化的问题
java对象序列化的问题
摘要: java对象序列化的问题
1 做一个含有复杂数据的程序,设计好数据,并放入一个类中,这个类实例化为一个对象。把这个对象用序列化读写盘。
2 不用序列化,直接使用Java 的文件类去存取这些数据,也给一个实现
3 作好1与2 的对比。
这是我老师让我做的毕业设计的要求中的前三个。他给了一段代码如下
我的背景:没有学习过java,只是看了一下一些语法。前段时间由于找工作去了,没把毕业设计的事放在心上,刚回学校,老师就让我这几天把论文的初稿给他,我这样的情况哪里能弄初稿给他啊,上面的三个问题我都还没有解决,我不知道怎么弄初稿给他,哪位大侠帮我看看我老师的这段代码然后帮我看一下第2步怎么实现,我真的是感激不尽。先谢谢了。。
import java.io.*;
class MyUser implements java.io.Serializable
{
public String a;
public String[] bVec;
public MyUser()
{
a=new String();
bVec=new String[3];
}
}
public class DataTest implements java.io.Serializable{
public int aa;
public int bb;
public float cc;
public int[]aavec;
public MyUser[] myuser;
public DataTest() {
aa=0;
bb=0;
cc=0;
aavec=new int[100];
myuser=new MyUser[10];
for(int i=0;i
}
public static void main(String[] args) {
DataTest datatest = new DataTest();
datatest.aa=10;
datatest.bb=100;
for (int i=0;i
datatest.aavec[i]=i;
for (int i=0;i
{
datatest.myuser[i].a=(Integer.toString(i));
for(int j=0;j
datatest.myuser[i].bVec[j]=(Integer.toString(i)+":"+
Integer.toString(j));
}
try {
ObjectOutputStream out =
new ObjectOutputStream(
new FileOutputStream("c://userInfo.ser"));
out.writeObject(datatest);
out.flush();
out.close();
}
catch (java.io.IOException IOE) {
System.out.println("IOException");
}
try
{
FileInputStream file = new FileInputStream("c://userInfo.ser");
ObjectInputStream input = new ObjectInputStream(file);
DataTest user = (DataTest) input.readObject();
for(int j=0;j
{
System.out.println(user.myuser[5].bVec[j]);
}
String[] mystring;
int result=0;
for(int j=0;j
{
mystring=user.myuser[6].bVec[j].split(":");
for(int k=0;k
result+=Integer.parseInt(mystring[k]);
System.out.println(result);
}
input.close();
}
catch (java.io.IOException IOE) {
System.out.println("IOException");
}
catch (ClassNotFoundException cnfe) {
System.out.println("ClassNotFoundException");
}
}
}
我晕!
毕业设计也太简单了吧
大哥什么学校?
很简单吗,可以跟我说说吗?
后面还有两个要求我没写出来。。
就是把你类里的数据以字符串的形式存储在文本文件中
就是要注意顺序
也可以每行存储一个数据,可以在每行的开始标记数据在结构中的位置
我现在遇到一个问题,我编译的时候老是说找不到main类。怎么回事?
我用了最简单的程序来测试还是说找不到。
找不到什么?文件?
把代码贴出来
public class da
{
public static void main(String arges[])
{
System.out.print("fdsjlfjelwr");
}
}
出现这个对话框:could not find the main class,programm will exit
在message里还出现这样的话:
java.lang.NoClassDefFoundError: da
Exception in thread "main"
javac da.java
java da
一样不行
出现:exception in thread"main"java.lang.noclassdeffounderror:da
你对java了解太少了
老师干吗让你做这个?
你问的这个问题我现在没有时间思考,我只是想知道我这个怎么做,我郁闷这个,不是郁闷老师为什么让我做这个。555
其实都是很基础的东西
最好找一个java入门的书,看看最简单的代码如何遍
然后再看看文件操作和对象序列化就够了
最重要的是和书上的例子一起练习
慢慢就懂了
可是现在我拿最简单的例子来测试,都不行,我不知道怎么还用其他的例子测试,就象上面我放的代码,出现那些异常情况,我不知道怎么解决。现在都没有办法继续下去了。
上面的是全部的原代码?
很奇怪我这里运行没问题
看看你环境变量path里有没有 .
环境变量里的这个PATH有了的
我是让你看看path里有没有 . (句点)
这个是什么啊?
.;%JAVA_HOME%/bin;%ANT_HOME%/bin;%MYSQL_HOME%/bin;
这是我的,你看看最前面的句点
我的PATH值是C:/Borland/JBuilder2005/jdk1.4/bin
别用jBuilder
那个东西你也得学
就用sun的jdk就行乐
那东西好用吗?JDK是什么啊?我怎么样可以用了?
我烦啊,老师让我过两天交论文了。。。这个问题实在是太严峻了
呵呵;可以通过一些原理的对比分析来阐述一下,在实例的基础上增加点深度
看来只有一个办法:
抄别人的
晕死
楼主找到什么工作了?
你的程序没问题的,能跑通
看看你的jdk或者是环境变量设置的对吗?????
*************************给楼主最中肯的建议:**************************
对呀,看来你对java了解甚少,估计你找工作也不打算从这方面找,做这个对你也没什么意义,干脆抄算啦!或者干脆再csdn上找个人把你的毕业设计做了,你适当给人点补偿。要现在开始学,打死不可能在两天之内搞定。真的!!!
Mark~
*************************给楼主最中肯的建议:**************************
对呀,看来你对java了解甚少,估计你找工作也不打算从这方面找,做这个对你也没什么意义,干脆抄算啦!或者干脆再csdn上找个人把你的毕业设计做了,你适当给人点补偿。要现在开始学,打死不可能在两天之内搞定。真的!!!
//------------------------------------------------------------------------
兄弟说得太对了,现在说找工作难,大概就这个原因了,我的心儿也有底了,祖国的花朵又盛开了!
我的工作找到,是当老师的,计算机老师,教初中生pascal编程,我选的这个设计课题是当初跟自己赌气,非选一个从来没有接触过的东西,现在烦了。老师有事不在,又可以拖两天,可是越拖心越毛,抄都不知道去哪里抄
。。。
你倒是可以把这次的经验教给你的学生啊。
教他们做事要量力而为之?
环境变量要设置到系统环境变量即你lang包下的目录为好
javac DataTest .java
java DataTest
你编译一下这个 问题就好了
一群无知少年