2017-09-08 12 views
1

Je sais qu'il y a déjà beaucoup de questions sur ce sujet, mais aucune d'elles ne semble aider. Dans mon projet Maven, j'essaie d'accéder aux fichiers src/main/resource, et je sais que pendant l'exécution quand je veux lire un fichier et y écrire je dois accéder à son chemin de classe ou quelque chose. Je ne sais pas vraiment comment cela fonctionne, j'ai réussi à écrire du code à lire à partir d'un fichier, mais je ne sais pas comment écrire du code qui écrit dans un fichier. Ici, il est ce que j'ai jusqu'à présent:Accéder et manipuler des fichiers de ressources dans le projet 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"); 

    } 

Ce constructeur représente la classe UserService les méthodes que j'utilise pour accéder Resoruces utilisateur situé dans le fichier userJSON.json. Voici une méthode que j'utilise pour lire un fichier:

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

Comment puis-je écrire dans un fichier, et si possible de me expliquer comment cela fonctionne. Je veux dire par là comment Maven fonctionne avec les fichiers pendant l'exécution et ainsi de suite.

+1

Vous pouvez lire à partir d'une ressource à partir du fichier JAR mais en écrivant dans le fichier jar n'est tout simplement pas possible ... Si vous avez besoin d'écrire un fichier, utilisez le répertoire personnel de l'utilisateur ou quelque chose de similaire.Après cela, vous avez écrit que vous avez écrit quelques tests pour prouver cela? – khmarbaise

+0

Pourquoi voulez-vous écrire dans un fichier de ressources? Quel est vraiment votre objectif? –

+0

Eh bien je construis une sorte d'application de forum, et j'ai besoin des utilisateurs pour m'inscrire au forum afin de l'employer, ainsi chaque fois que l'utilisateur enregistre j'inclus son information dans le dossier ainsi je peux le charger vue (j'utilise AngularJS) –

Répondre

0

Il suffit d'appeler cette méthode, il lit le fichier et le convertir en 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 cette dépendance dans le fichier .pom:

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

L'utilisation ci-dessous la déclaration que vous obtenez Chemin absolu du fichier et vous pouvez l'écrire en utilisant l'auteur de fichier:

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

Merci! Cela fonctionne pour moi! –