2014-04-12 2 views
0

Этот вопрос у меня есть код для генерации файла, как указано нижеFile I/O в не создает файл в папке проекта

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

Теперь, когда я запустить эту программу на выходе путь obsolute является, как :

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

инструкция java.io.File jsonFile = new java.io.File ("./ json/newjson.json"); не создает ваш файл. Мы не создаем файл. см. java Docs – Hunsu

+0

Вы не хотите, чтобы файл находился в папке проекта. Проект не будет присутствовать при развертывании программного обеспечения. Вы, вероятно, захотите его в текущем рабочем каталоге, и именно там вы его кладете. Поэтому, вероятно, нет проблем, которые нужно решить. – EJP

+0

@ user230137 .. на самом деле у меня уже есть мой файл в моем проекте, но проблема в том, что он не указывает на этот файл, указывающий на какой-то другой вопрос ... –

ответ

0

Вам нужно поместить файл в папку проекта, а не в папка пути класса. Поэтому вам нужно указать абсолютный путь к файлу. Во-вторых, вам нужно также закрыть поток вывода.

0

Попробуйте кто-нибудь из fllowing:

1.Mention полный путь в конструкторе файла.

2. Или вы собираетесь что-то написать в своем файле правильно? Просто сделайте это ..

FileOutputStream jsonfile = new FileOutputStream ("newjson.json");

который создаст файл в текущем рабочем проекте.

+0

ok спасибо .... я попробую это ... и позволю вам знаю ..... –

Смежные вопросы