使用Java保存对象

时间:2013-09-15 20:44:47

标签: 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 ObjectOutputStream(fos);

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

    oos.close();
} catch (IOException e) {
    e.printStackTrace();
}

Game.ser会发生什么?这是一个实际创建的文件,还是只是在程序中?如果没有,它位于何处?我没有在任何项目文件夹中找到它。

程序运行正常。我只是想知道对象的保存位置。

2 个答案:

答案 0 :(得分:6)

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

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

显示其位置

答案 1 :(得分:4)

如果

中提供的路径
FileOutputStream fos = new FileOutputStream("Game.ser");

不是绝对的,它是相对于启动java应用程序的文件夹创建/打开的。

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

C:\Users\You\workspace\MyApplication

该文件将在

中创建
C:\Users\You\workspace\MyApplication\Game.ser

您可以通过运行

来获取该路径
System.getProperty("user.dir");

您提供给FileOutputStream的路径(如果不是绝对路径)将与此相关。