问题是我有一个生成文件的代码,如下所示
java.io.File jsonFile = new java.io.File("newjson.json");
System.out.println(jsonFile.getAbsolutePath());
try {
om.writeValue(jsonFile, categoryProducts);
} catch (IOException e) {
System.out.println("sorry we got little problem please try again later");
e.printStackTrace();
}
现在,当我在输出中运行此程序时,绝对路径为:
D:\eclips kepler\Eclipse-kepler\eclipse\newjson.json
这是 eclips IDE包的路径, 但我的项目路径是:
D:\educational softwares\android workspace\webservicesForIndTadka
问题是文件在项目上下文之外的位置生成的原因。
一些解决方法:
现在我将文件作为
java.io.File jsonFile = new java.io.File("./json/newjson.json");
它说
D:\eclips kepler\Eclipse-kepler\eclipse\.\json\newjson.json
sorry we got little problem please try again later
java.io.FileNotFoundException: .\json\newjson.json (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at org.codehaus.jackson.JsonFactory.createJsonGenerator(JsonFactory.java:746)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:2048)
at com.techbloomer.services.ControllerServices.initApp(ControllerServices.java:120)
at com.techbloomer.controllers.DataControllers.initApp(DataControllers.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
答案 0 :(得分:0)
您需要将文件放在项目文件夹中,而不是放在类路径文件夹中。所以你需要指定文件的绝对路径。其次,您还需要关闭输出流。
答案 1 :(得分:0)
尝试任何一个人:
1.Mention文件构造函数中的完整路径。
2.或者你要在你的档案中写点什么?就这样做..
FileOutputStream jsonfile = new FileOutputStream(“newjson.json”);
将在您当前的工作项目中创建该文件。