簡體   English   中英

Java JAR:寫入文件

[英]Java JAR: Writing to a file

目前,在我的eclipse項目中,我有一個我寫的文件。 但是,我已將項目導出到JAR文件,並且寫入該目錄不再有效。 我知道我需要將此文件視為類路徑資源,但如何使用BufferedWriter執行此操作?

您不必將其視為要寫入文件的類路徑資源。 如果文件在您的JAR文件中,您只需要這樣做,但是您不想寫入JAR文件中包含的文件嗎?

您仍然可以創建和寫入文件,但它可能是相對於工作目錄 - 您執行JAR文件的目錄(除非您使用絕對路徑)。 在eclipse中,從運行配置對話框中配置工作目錄。

你可能在Linux上工作。 因為,在Linux中,當您從JAR啟動應用程序時,工作目錄將設置為您的主文件夾(/ home / yourname /)。 從Eclipse啟動時,工作目錄設置為項目文件夾。

要確保您確實知道您正在使用的文件位於項目文件夾或JAR所在的文件夾中,您可以使用這段代碼來了解JAR所在的位置,然后使用File(File parent, String name)構造函數來創建文件:

// Find out where the JAR is:
String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
path = path.substring(0, path.lastIndexOf('/')+1);
// Create the project-folder-file:
File root = new File(path);

而且,從現在開始,您可以像這樣創建所有文件:

File myFile = new File(root, "config.xml");

當然, root必須在你的范圍內。

這些資源(更改時)最好存儲在user.home的子目錄中。 這是一個可重現的路徑,用戶應具有寫入權限。 您可以使用主類的包名作為子目錄的基礎。 例如

our.com.Main -> ${user.home}/our/com/

暫無
暫無

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

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