2012-01-25 5 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) 

私が使用していたコードは次のとおりです。私は、ビルド・パスとFILE001にJSON JARを追加してください

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は、プロジェクトのワークスペース内のフォルダ内にあります。ここで行うには絶対的な最も簡単な方法は、ファイルの完全なパスを使用することです

おかげ

+0

あなたはまた、オープン・ファイル記述子を残すことFileReaderの()または他のあなたのプロセスをクローズすることをお勧めします - 次に、などの残りfile/file001.jsonを追加します。 try {...} finally {reader.close(); } – chubbsondubs

答えて

1

あなたは使用して現在のディレクトリを取得することができます -

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

System.getProperty("user.dir"); 

ファイルが/home/user/test/file/file001.jsonであり、現在のディレクトリコマンドを使用して/home/user/test/を取得しているとします。

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

Object obj = parser.parse(new FileReader("C:/the/full/path/file001.json")); 
関連する問題