Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java保存对象_Java_Io - Fatal编程技术网

用Java保存对象

用Java保存对象,java,io,Java,Io,我有一个关于以下代码的问题。我创建了我的Player类的三个实例,然后将它们保存到一个文件中 Player a = new Player(1, "asd"); Player b = new Player(2, "asd"); Player c = new Player(3, "asd"); try { FileOutputStream fos = new FileOutputStream("Game.ser"); ObjectOutputStream oos = new Obj

我有一个关于以下代码的问题。我创建了我的Player类的三个实例,然后将它们保存到一个文件中

Player a = new Player(1, "asd");
Player b = new Player(2, "asd");
Player c = new Player(3, "asd");

try {
    FileOutputStream fos = new FileOutputStream("Game.ser");
    ObjectOutputStream oos = new ObjectOutputStream(fos);

    oos.writeObject(a);
    oos.writeObject(b);
    oos.writeObject(c);

    oos.close();
} catch (IOException e) {
    e.printStackTrace();
}
Game.ser怎么了?这是一个实际创建的文件,还是仅在程序中?如果没有,它位于哪里?我在任何项目文件夹中都找不到它


程序运行良好。我只是想知道对象保存在哪里。

它们保存在应用程序路径中。你可以用

new File("Game.ser").getAbsolutePath()

如果中提供了路径,则显示其位置

FileOutputStream fos = new FileOutputStream("Game.ser");
不是绝对的,它是相对于启动
java
应用程序的文件夹创建/打开的

在像Eclipse这样的IDE中,应用程序通常从项目目录运行。例如,如果您的项目处于

C:\Users\You\workspace\MyApplication
该文件将在中创建

C:\Users\You\workspace\MyApplication\Game.ser
您可以通过运行来获得该路径

System.getProperty("user.dir");

如果您提供给
文件输出流的路径不是绝对路径,则它将相对于该路径。

与您拥有Game.class的位置相同(假设Game是您显示给我们的类)。它是在应用程序所在的当前工作目录中创建的。