2017-09-01 2 views
0

Dans un projet eclipse, je voudrais créer un fichier json et le fichier existe dans la même construction de projet et donner son chemin de classe dans le code afin que les données soient stockées dans ce fichier json.Configuration du classpath pour l'écriture dans un fichier json

Cependant, si je tente comme ci-dessous les données ne sont pas écrire dans le fichier

try (Writer writer = new FileWriter("/src/test/java/operatorList.json")) { 
       Gson gson = new GsonBuilder().create(); 
      gson.toJson(foo, writer); 
      writer.flush(); 
      writer.close(); 
     System.out.println("JSON :: "+gson.toJson(foo)); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

mais quand je change l'emplacement du fichier comme ci-dessous, il fonctionne parfaitement

try (Writer writer = new FileWriter("G://operatorList.json")) { 
       Gson gson = new GsonBuilder().create(); 
      gson.toJson(foo, writer); 
      writer.flush(); 
      writer.close(); 
     System.out.println("JSON :: "+gson.toJson(foo)); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
} 

s'il vous plaît aider à ce sujet pour obtenir l'emplacement du fichier dans le même projet

Répondre

1

Essayez d'utiliser "src/test/java/operatorList.json" plutôt que d'utiliser "/src/test/java/operatorList.json" comme nom de fichier dans FileWriter ctor. J'ai essayé avec un simple test avec le compilateur Java 8 et ça marche.

java.io.FileWriter fileWriter = new java.io.FileWriter("src/test.txt"); 
    fileWriter.write("Test123"); 
    fileWriter.flush(); 
    fileWriter.close(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
}