簡體   English   中英

使用文件夾保存文本文件時出現問題

[英]Problems saving a text file with a folder

只是想知道您是否可以為我指明正確的方向。 我現在在下面的代碼是我現在所處的位置,我遇到的問題是它將把data.txt保存到位置,但是僅當我不添加文件夾時。 "/data.txt"有效,但"/folder/data.txt" 邏輯告訴我,我的代碼沒有創建文件夾,而是告訴計算機將data.txt保存到名為folder的文件夾中。 我的第一個問題是,如何修改我的代碼以實現這一目標?

其次,也是最重要的一點,我一直在研究網絡和Stack Overflow,並從user.homeuser.dir和更多示例中獲得了很多示例,它們都可以工作,但是同樣沒有第1部分中所述的文件夾方式我的主要目標是在文件夾中隱藏(而不是字面意義上的)保存文件,例如。 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();
    }
}

聽起來您要問的是如何創建父目錄。

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

在此處查看mkdirs方法的文檔

最終代碼如下所示:

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();
    }
}

至於問題的第二部分,請不要隱藏我的“程序文件”中的內容。 正確(也是最簡單)的方法之一是使用Java Preferences API 這里有一個很好的教程它實際上根本不需要任何文件操作。

您還可以使用Jasypt之類的庫對文件進行加密,但是在這種情況下,這可能會顯得過分殺傷力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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