【问题标题】:Save a binary file in the same folder for every PC为每台 PC 在同一文件夹中保存一个二进制文件
【发布时间】:2015-02-11 09:26:05
【问题描述】:
我正在制作一个将信息保存到二进制文件中的游戏,这样我就可以在下一次使用时从离开游戏的那一刻开始。
我的问题是它在我的电脑上运行良好,因为我选择了一个已经存在的路径来保存文件,但是一旦我在另一台电脑上运行游戏,我收到一个错误,说文件的路径无效(因为显然,我还不存在)。
基本上我使用 File 类来创建文件,然后使用 ObjectOutputStream 和 ObjectInputStream 来读取/写入信息。
抱歉这个菜鸟问题,我对使用文件还是很陌生。
【问题讨论】:
-
-
使用exists方法判断文件/路径是否存在,如果不存在则创建。
标签:
java
file
path
binary
【解决方案1】:
您必须先检查目录是否存在,如果不存在则必须创建它。
String folderPath = System.getProperty("user.home") + System.getProperty("file.separator") + "MyFolder";
File folder = new File(folderPath);
if(!folder.exists())
{
folder.mkdirs();
}
File saveFile = new File(folderPath, "fileName.ext");
请注意,在这种情况下 mkdirs() 方法比 mkdir() 方法更有用,因为它将创建所有不存在的父文件夹。
希望这可以帮助。祝你好运,编程愉快!
干杯,
崇高
【解决方案2】:
您正在寻找File mkdirs()
这将创建路径中命名的所有必要目录。
例如:
File dirs= new File("/this/path/does/not/exist/yet");
dirs.mkdir();
File file = new File(dirs, "myFile.txt");
考虑到它可能会由于文件权限的原因而失败。
【解决方案3】:
我的解决方案是在用户的主目录 (System.getProperty("user.home")) 中创建一个子目录,例如
File f = new File(System.getProperty("user.home") + "/CtrlAltDelData");
f.mkdir();
File mySaveFile = new File (f, "save1.txt");