2017-09-08 58 views
1

我知道這個主題已經有很多問題,但他們似乎都沒有幫助。在我的Maven項目中,我試圖訪問src/main/resource文件,並且我知道在運行時當我想讀取文件並寫入文件時,我必須訪問其類路徑或其他東西。訪問和操作Maven項目中的資源文件

我真的不知道這是如何工作的,我設法寫代碼從文件中讀取,但我不知道如何編寫寫入文件的代碼。這是我到目前爲止有:

private File userFile; 
    private ObjectMapper om; 
    private InputStream is; 

    public UserService() { 
     om = new ObjectMapper(); 

     ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
     is = classLoader.getResourceAsStream("files/userJSON.json"); 

    } 

此構造代表我用位於userJSON.json文件訪問用戶Resoruces哪些方法UserService類。這裏有一個方法,我用讀文件:

public List<User> readJSON() throws JsonParseException, JsonMappingException, IOException{ 


     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 


     List<User> list = om.readValue(br,new TypeReference<List<User>>(){}); 

     return list; 
    } 

我如何寫一個文件,如果可能的話是如何工作的向我解釋。我的意思是,Maven在運行時如何處理文件等等。

+1

您可以從JAR文件中的資源讀取,但寫入進入jar文件是根本不可能的...如果你需要編寫文件使用用戶的主目錄或類似的東西。除了你寫的'認爲它的工作'你沒有編寫一些測試來證明嗎? – khmarbaise

+0

你爲什麼要寫一個資源文件?什麼是你的目標? –

+0

嗯,我建立某種論壇應用程序,我需要用戶註冊到論壇才能使用它,所以每當用戶註冊我寫他的信息在文件中,所以我可以加載它後,並使用它來呈現查看(我正在使用AngularJS) –

回答

0

只需調用此方法將讀取該文件並將其轉換爲JSONObject的:

private static JSONObject readUserJSON() throws FileNotFoundException, IOException, ParseException { 
     String jarPath = (new File("")).getAbsolutePath(); 
     JSONObject config = null; 
     JSONParser parser = new JSONParser(); 
     config = (JSONObject) parser.parse(new FileReader(jarPath + "resource/files/userJSON.json")); 

     return config; 

    } 

ADD這種依賴性在.pom文件:

<dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

使用下面的語句你得到文件的絕對路徑並且您可以使用文件編寫器編寫它:

String jarPath = (new File("")).getAbsolutePath(); 
+0

謝謝!這適用於我! –