2014-10-11 89 views
0

只是想知道您是否可以將我指向正確的方向。我的代碼下面是我現在的立場,我遇到的問題是,它將節省data.txt到位置,但只有當我不添加文件夾例如。 "/data.txt"工程,但"/folder/data.txt"不起作用。邏輯告訴我,我的代碼不會創建文件夾,而是告訴計算機將data.txt保存到名爲folder的文件夾中。我的第一個問題,我的代碼如何修改以實現這一目標?使用文件夾保存文本文件的問題

其次,也是最重要的,我一直在找過網和堆棧溢出,並在第1部分中描述已經給出了大量的例子,從user.homeuser.dir多,他們所有的工作,但同樣沒有在這樣的文件夾。我的主要目標是隱藏(不是字面上)一個文件夾中的保存文件,例如。 C:/Program Files/SysAuth/data.txt。這是一個簡單的嘗試,不允許用戶修改分數,原始安全性是所有必需的。我的主要問題是我希望文件路徑兼容Windows和Mac。我無法測試任何兼容性,因爲我無法訪問Mac。希望你能幫助。

public statiic void save(){ 
    String str = "Congratulations"; 

    file = System.getPropery("user.home"); 
    fileName = (file + "/folder/data.txt"); 

    try { 
     FileWriter fw = new FileWriter(fileName); 
     BufferedWriter bw = new BufferedWriter(fw); 
     bw.write(str); 
     bw.close(); 
    } 
    catch(FileNotFoundException e){ 
     e.printStackTrace(); 
    } 
    catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 
+1

nvm我沒有讀它很好,你需要使文件夾一個文件,只是做file.mkdirs – Emrage 2014-10-11 10:35:47

+0

第一個問題可以用新文件(〜/文件夾/ data.txt)解決,然後調用mkdirs文件對象。之後,您可以將文件對象放在輸出流中。您還可以使用文件對象設置權限,如可讀性或創建隱藏文件夾。 – user 2014-10-11 10:36:05

+0

@user,我以前使用過你的方法,但是我不確定這是否與mac兼容,但是在這裏也是如此。我還讀到,在某些操作系統中,字面上隱藏文件會暴露安全警告。是這樣嗎?在Emrage,謝謝Il看看這個「。」如你所說。 – dazbrad 2014-10-11 10:42:53

回答

0

這聽起來像你問的是如何創建父目錄。

public static void save(){ 
    String str = "Congratulations"; 

    file = System.getPropery("user.home"); 
    File textFile = new File(file + "/folder/data.txt"); 

    try { 
     textFile.getParentFile().mkdirs(); 
     FileWriter fw = new FileWriter(textFile); 
     BufferedWriter bw = new BufferedWriter(fw); 
     bw.write(str); 
     bw.close(); 
    } 
    catch(FileNotFoundException e){ 
     e.printStackTrace(); 
    } 
    catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 

至於問題的第二部分......請不要去藏東西:

File file = new File(filename); 
file.getParentFile().mkdirs(); 

爲mkdirs方法here

最後的代碼如下所示查看文檔在我的「程序文件」中。其中一個正確的(也是最簡單的)方法是使用Java Preferences API。有一個很好的教程here,實際上根本不需要任何文件操作。

你也可以使用像Jasypt這樣的庫來加密文件,但在這種情況下這可能是矯枉過正的。

+0

這是接近我試圖說。使用這個例子,我想將它保存到用戶不常見的地方,對於新手來說,開始玩耍和編輯更加恐怖。使用windows,我會推薦選擇將我的文件放在C:/ Program Files /中。 ....在這裏創建一個authorative sounding文件夾/ data.txt。但是,當然,mac不使用C:/或程序文件。你看到我從哪裏來? – dazbrad 2014-10-11 11:05:44

+0

增加了一些信息,可以幫助解決第二個問題。我沒有添加任何代碼,因爲更改需要刪除第一個問題的解決方案。在這種情況下,這兩個問題只有鬆散的相關性,很難用一個答案來提供適當的解決方案。 – Justin 2014-10-11 11:55:08

+0

謝謝,我有一個快速閱讀 – dazbrad 2014-10-11 12:00:21