2014-04-21 99 views
1

我想問是否可以將文本文件放入我的jar文件中,我用它們在我的遊戲中製作我的地圖,但用戶可以獲得Highscores 。現在我想用地圖保存高分,所以我必須將地圖保存在用戶PC上。有什麼辦法可以做到這一點?我在網上搜索了一些想法,但我找不到任何接近我想要的東西。我只有3/4年的java,所以我對這些事情瞭解不多,在eclipse調試之外發生的所有事情對我來說都是問題(文件主要是這些事情之一,空例外等)。從可執行文件JAR中的res文件夾中提取文件

現在的主要問題。

可以嗎?如果是的話,你有我可以搜索的任何條款,或一些網站/指南/教程?如果不是,還有什麼其他方式可以拯救高分嗎?

編輯: 作出明確

我能得到的文本文件(該文件中的文本)提取到不同的文件中像我的比賽的主目錄(這裏我保存設置和東西)的基本地圖是jar文件裏面,所以我希望他們可以在程序的第一次啓動

問候提取Carolien

+0

我不認爲我清楚地知道你的問題。是你的問題 a)如何將文本文件添加到jar或 b)從添加到jar中的文本文件讀取。 我相信你想要兩個都做? 檢查[Java Jar文件 - 如何從Jar文件讀取文件](http://alvinalexander.com/blog/post/java/read-text-file-from-jar-file)。它應該給你一些線索。也許如果它沒有用,你可以回覆。 – rockstar

+0

我的問題是,我可以將文本文件(文件中的文本)提取到不同的文件中,比如我的遊戲的主目錄(我保存設置和內容)基本地圖位於jar文件中,所以我希望它們在程序的第一次啓動時被提取出來 – CarolienVH

回答

1

「像的主目錄提取到一個不同的文件我的遊戲(我保存設置和東西)的基本地圖是jar文件裏面,所以我希望他們要在節目」

您可以通過使用getClass().getResource()

URL url = getClass().getResource("/res/myfile.txt"); 

獲取URL,然後創建從URI File對象的第一次啓動提取的URL

File file = new File(url.toURI()); 

然後只是執行您的正常文件操作。

if (file.renameTo(new File(System.getProperty("user.home") + "\\" + file.getName()))) { 
    System.out.println("File is moved successful!"); 
} else { 
    System.out.println("File is failed to move!"); 
} 

假設你的文件結構如下圖所示,它應該工作正常

ProjectRoot 
     src 
      res 
       myfile.txt 

注:以上是移動整個文件。如果要提取裏面的文件只是數據,那麼你可以簡單的使用

InputStream is = getClass().getResourceAsStream("/res/myfile.txt"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 

reader的只是做正常的IO操作。有關寫入文件的幫助,請參見here

相關問題