[英]Location to store save files on local machine in java
我制作了一個Java applet /應用程序游戲,該游戲應將用戶可以創建的級別保存到其本地計算機上。 我說applet / application是因為它既可以作為應用程序運行,也可以作為applet運行。 目前,我正在使用它來編寫文件:
BufferedWriter bf = new BufferedWriter(new FileWriter("Circles/levels/level.txt"));
for (int i = 0; i < lines.size(); i++) {
bf.write(lines.get(i));
bf.newLine();
}
lines是一個包含要寫入文件的行的arraylist。
和
FileReader fr = new FileReader("Circles/levels/level.txt");
BufferedReader bf = new BufferedReader(fr);
lines = new ArrayList<String>();
while (true) {
String line = bf.readLine();
if (line == null) {
break;
}
lines.add(line);
}
bf.close();
讀取文件。 那些被包圍在try / catch循環中,我只是在顯示我必須要做的。
這行得通,但是在不同的操作系統上似乎是一個完全不同的位置,並且應用程序與小程序存儲在不同的位置。
我想要一種絕對位置的保存路徑的方法,無論運行Java程序的位置如何,該級別都不會更改,並且如果將其作為應用程序和小程序來運行,則將是相同的。 在所有操作系統(Linux,Windows,Mac)上都可以進行此項工作也將是一件很不錯的事情。
小應用程序根本沒有保存數據的位置,因此,如果要作為小應用程序運行,則必須非常簡單地避免這種情況。 小程序沙箱會完全阻止文件系統訪問。 您需要調用服務器來保存數據。
對於獨立應用程序,我也很遺憾地說沒有完全普遍接受的約定。 但是,在Linux,OSX和Windows上,通常都可以在用戶的主目錄中創建dotfile目錄:
public static final File savedir = new File(new File(System.getProperty("user.home")), ".yourgame");
然后,從中導出文件名:
FileReader fr = new FileReader(new File(savedir, "level.txt"));
盡管它可以工作,但是它並不是Windows程序通常會做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.