问题是我有生成文件的代码,如下所示
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这是by eclips包的路径,但我的项目路径是:
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)发布于 2014-04-12 09:13:33
您需要将文件放在项目文件夹中,而不是类路径文件夹中。因此,您需要指定文件的绝对路径。其次,还需要关闭输出流。
发布于 2014-04-12 09:27:13
试一试那些满脸通红的人:
1.在文件构造函数中提到完整的路径。
2.或者你要在你的档案里写点什么,对吧?就这么做..。
FileOutputStream jsonfile =新FileOutputStream("newjson.json");
它将在当前工作项目中创建文件。
https://stackoverflow.com/questions/23028342
复制相似问题