2012-01-25 90 views
0

我想運行一個從JSON文件讀取一些值的java類。當我運行它,但是,我得到的錯誤:Eclipse不讀取JSON文件

java.io.FileNotFoundException: \file001.json (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at jsonPractice.main(jsonPractice.java:21) 

我使用的代碼是:

import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.Iterator; 

import org.json.simple.JSONArray; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.json.simple.parser.ParseException; 

public class jsonPractice { 


     @SuppressWarnings("unchecked") 
     public static void main(String[] args) 
     { 
      JSONParser parser = new JSONParser(); 
      try 
      { 
       Object obj = parser.parse(new FileReader("file001.json")); 
       JSONObject jsonObject = (JSONObject) obj; 
       String name = (String) jsonObject.get("name"); 
       System.out.println(name); 

       long age = (Long) jsonObject.get("age"); 
       System.out.println(age); 

       JSONArray msg = (JSONArray) jsonObject.get("messages"); 
       Iterator<String> iterator = msg.iterator(); 
       while (iterator.hasNext()) 
       { 
        System.out.println(iterator.next()); 
       } 
      } 
       catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 
       catch (IOException e) { 
       e.printStackTrace(); 
      } 
       catch (ParseException e) { 
       e.printStackTrace(); 
      } 
     } 
} 

我已經取得了一定的JSON jar添加到構建路徑和FILE001 .json位於項目工作區中的文件夾內。

感謝

+0

您還需要關閉的FileReader(),或者你的過程中會留下的文件描述符。嘗試{...}最後{reader.close(); } – chubbsondubs

回答

1

你可以使用當前目錄 -

String currentDir = new File(".").getAbsolutePath(); 

System.getProperty("user.dir"); 

讓我們考慮您的文件在/home/user/test/file/file001.json中,並且您使用當前目錄命令得到/home/user/test/。然後,追加其餘file/file001.json像 -

Object obj = parser.parse(new FileReader(currentDir + "file/file001.json")); 
0

在這裏做的絕對最簡單的事情是使用文件的完整路徑:

Object obj = parser.parse(new FileReader("C:/the/full/path/file001.json"));