我对以下代码有疑问。我创建了我的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会发生什么?这是一个实际创建的文件,还是只是在程序中?如果没有,它位于何处?我没有在任何项目文件夹中找到它。
程序运行正常。我只是想知道对象的保存位置。
答案 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
的路径(如果不是绝对路径)将与此相关。