帮助第一个序列化程序

时间:2010-07-13 10:42:24

标签: java serialization

这是我正在使用的代码:

public class Ser implements Serializable {
int x,y;
String name;
public Ser(int a, int b, String c) {
    x=a;
    y=b;
    name = c;
  }
}

import java.io.*;

public class testSer {
public static void main(String[] args) {
    FileOutputStream testStream = new FileOutputStream("serText.ser");
    ObjectOutputStream testOS = new ObjectOutputStream(testStream);
    Ser objTest = new Ser(1,2, "Nikhil");
    testOS.writeObject(objTest);
    testOS.close();
  }
}

以下是我收到的错误:

Errors http://i29.tinypic.com/2weauzt.jpg

我在文件夹中手动创建了* .ser文件(虽然书中说编译器会自动创建一个),但问题仍然存在。

RELP!

3 个答案:

答案 0 :(得分:4)

你需要以某种方式处理IOException,无论是捕获它还是从main抛出。对于一个简单的程序,投掷可能很好:

public static void main(String[] args) throws IOException

答案 1 :(得分:3)

你不是在处理IOException。您需要捕获它或明确地抛出它。

try{
  // Your code
}catch(IOException e){
  // Deal with IOException
}

public static void main(String[] args) throws IOException{
  // Your code
}

这是Java具有checked exceptions的结果,其中IOException是一个。

出于您的目的,第二个可能很好,因为无法真正恢复IO故障。在较大的程序中,您几乎肯定希望从瞬态IO故障中恢复,因此第一个更合适。

答案 2 :(得分:1)

您需要使用try / catch块,处理在您使用的方法中声明为抛出的异常。阅读exception handling是值得的。