用于写入json文件的类路径配置

时间:2017-09-01 08:46:44

标签: json spring spring-mvc classloader filewriter

在eclipse项目中,我想创建一个json文件,该文件存在于同一项目构建中,并在代码中提供其类路径,以便将数据存储到该json文件中。

但是,如果我尝试下面的数据不是写入文件

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

但是当我改变文件位置时,它完全正常工作

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

请帮助解决此问题,以便在同一个项目中获取文件位置

1 个答案:

答案 0 :(得分:1)

尝试使用" src / test / java / operatorList.json"而不是使用" /src/test/java/operatorList.json"作为FileWriter构造函数中的文件名。 我尝试使用Java 8编译器进行简单测试,它正在运行。

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