3

我对以下代码有疑问。我创建了我的 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 会发生什么?这是一个实际创建的文件,还是只是在程序中?如果不是,它位于哪里?我在任何项目文件夹中都找不到它。

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

4

2 回答 2

6

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

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

显示他们的位置

于 2013-09-15T20:46:48.210 回答
4

如果提供的路径

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");

您提供给 的路径FileOutputStream(如果不是绝对路径)将相对于该路径。

于 2013-09-15T20:50:05.690 回答