所以,我试图在一个更高级的程序上实现序列化,但它不起作用,所以我try 了一个简单的测试,当我try 写入我的.ser文件
MAIN CLASS
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class App implements Serializable {
public static void main(String[] args) throws Exception {
person p = new person("John", 30);
FileOutputStream fos = new FileOutputStream("person.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(p);
oos.close();
fos.close();
}
}
CLASS I WANT TO SERIALIZE
import java.io.Serializable;
public class person implements Serializable {
private String name;
private int age;
person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "helloworld";
}
}
ERROR MESSAGE
Exception in thread "main" java.io.IOException: Access is denied
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:347)
at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1891)
at java.base/java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1800)
at java.base/java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:251)
at App.main(App.java:10)
这可能是一个非常简单的解决方案,但我完全不知所措.谢谢
UPDATE
我运行的是Windows 11,文件在工作区目录(Test\person.ser
)中,java文件在Test\src\
目录中,根据Visual Studio代码默认,它在Test\bin\
目录中启动.只读是未选中的,我已try 以管理员身份运行.