我知道关于这个话题已经有很多问题,但它们似乎都没有帮助。在我的Maven项目中,我试图访问src / main / resource文件,我知道在运行时,当我想读取文件并写入它时,我必须访问它的类路径或其他东西。
我真的不确定它是如何工作的,我设法编写代码来读取文件,但我不知道如何编写写入文件的代码。这是我到目前为止所做的:
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");
}
此构造函数表示UserService类,我使用这些方法访问位于userJSON.json文件中的User Resoruces。这是我用来读取文件的方法:
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如何在运行时使用文件等等。
答案 0 :(得分:1)
只需调用此方法,它将读取文件并将其转换为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;
}
在.pom文件中添加此依赖项:
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple example</artifactId>
<version>1.1.1</version>
</dependency>
使用以下语句,您将获得文件的绝对路径,您可以使用文件编写器编写它:
String jarPath = (new File("")).getAbsolutePath();