簡體   English   中英

在Java中將保存文件存儲在本地計算機上的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM