这是我正在使用的代码:
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!
答案 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是值得的。