我写的两个Object Serializable练习程序,为什么对象能写进文件,但是却不能把它读出来,那位高手能够指点?敬礼,谢谢!
//写对象的文件Ser1.java
import java.io.*;class Man implements Serializable{
String name;
int age;
double height;
}
public class Ser1 { /**
* @param args
*/
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("c:\\abc.dat");
ObjectOutputStream oos=new ObjectOutputStream(fos);
Man m=new Man();
m.name="何春根";
m.age=22;
m.height=170.0;
oos.writeObject(m);
oos.close();
System.out.println("以降文件输出至文件");
// TODO Auto-generated method stub }}-------------------------------------------------------------------
//读出刚写进去对象的文件Ser2.java
//出现错误
import java.io.*;public class Ser2 { /**
* @param args
*/
public static void main(String[] args) throws IOException{
FileInputStream fis=new FileInputStream("c:\\abc.dat");
ObjectInputStream iso=new ObjectInputStream(fis);
Man m;
m=(Man)iso.readObject();//出错的地方
iso.close();
System.out.println(m.name);
System.out.println(m.age);
System.out.println(m.height);
// TODO Auto-generated method stub }}///////////////////////////////////////////////////////////////
不知为什么出现下面的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type ClassNotFoundException at Ser2.main(Ser2.java:13)
//写对象的文件Ser1.java
import java.io.*;class Man implements Serializable{
String name;
int age;
double height;
}
public class Ser1 { /**
* @param args
*/
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("c:\\abc.dat");
ObjectOutputStream oos=new ObjectOutputStream(fos);
Man m=new Man();
m.name="何春根";
m.age=22;
m.height=170.0;
oos.writeObject(m);
oos.close();
System.out.println("以降文件输出至文件");
// TODO Auto-generated method stub }}-------------------------------------------------------------------
//读出刚写进去对象的文件Ser2.java
//出现错误
import java.io.*;public class Ser2 { /**
* @param args
*/
public static void main(String[] args) throws IOException{
FileInputStream fis=new FileInputStream("c:\\abc.dat");
ObjectInputStream iso=new ObjectInputStream(fis);
Man m;
m=(Man)iso.readObject();//出错的地方
iso.close();
System.out.println(m.name);
System.out.println(m.age);
System.out.println(m.height);
// TODO Auto-generated method stub }}///////////////////////////////////////////////////////////////
不知为什么出现下面的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type ClassNotFoundException at Ser2.main(Ser2.java:13)
}包括不可以抛出异常,否则就只是一个普通的静态方法,而不再是一个入口方法了。下边的代码已经调试://Man.java
import java.io.Serializable;public class Man implements Serializable{
String name;
int age;
double height;
}//Ser1.java
import java.io.*;public class Ser1 { public static void main(String[] args) {
Man m = new Man();
m.name = "何春根";
m.age = 22;
m.height = 170.0; FileOutputStream fos = null;
try {
fos = new FileOutputStream("abc.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(m);
oos.flush();
oos.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch (IOException ex1) {
ex1.printStackTrace();
}
System.out.println("以降文件输出至文件");
}
}//Ser2.java
import java.io.*;public class Ser2 { public static void main(String[] args) {
Man m = null;
try {
FileInputStream fis = new FileInputStream("abc.dat");
ObjectInputStream iso = new ObjectInputStream(fis);
m = (Man) iso.readObject();
iso.close();
} catch (ClassNotFoundException ex1) {
ex1.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println(m.name);
System.out.println(m.age);
System.out.println(m.height);
}
}