我正在使用JSON simple
,当它正在读取包含JSON对象的文本文件时,它会抛出以下异常:
Exception in thread "main" Unexpected token END OF FILE at position 0.
at org.json.simple.parser.JSONParser.parse(JSONParser.java:257)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:92)
at readjson.ReadJson.readFileToWriteJSON(ReadJson.java:121)
at readjson.ReadJson.main(ReadJson.java:40)
我不知道如何捕获此异常。有什么想法吗?
修改
以下是代码:
private static void readFileToWriteJSON(final File folder) throws FileNotFoundException, IOException, ParseException {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
readFileToWriteJSON(fileEntry);
} else {
try{
String query=fileEntry.getName();
fop=new FileOutputStream(file+"\\"+query+".txt");
JSONParser jsonParser = new JSONParser();
File file = new File(fileEntry.getPath());
Object object = jsonParser.parse(new FileReader(file));//exception happens here.
JSONObject obj= (JSONObject) object;
parseJson(obj);
for(String url:writeThis){
fop.write(url.getBytes());
fop.write(System.getProperty("line.separator").getBytes());
}
writeThis=new ArrayList<>();
}
}
catch(){}//how to fill this part
}
}
答案 0 :(得分:0)
这是从库内部抛出到您的调用代码。所以找到从你的代码到这个错误抛出代码的调用行(在readjson.ReadJson.main(ReadJson.java:40))并在那里试一试..
答案 1 :(得分:0)
首先删除你的尝试并抓住他们在错误的地方 - 假设你想继续阅读其他文件。
然后将代码更改为
Object object = null;
try {
object = jsonParser.parse(new FileReader(file));//exception happens here.
} catch (Exception e) {
e.printStackTrace();
continue; // go to the top of the for loop
}
答案 2 :(得分:-1)
试试这个:
try {
// your code
} catch (EOFException e) {
// handle EOF exception
} catch(IOException e) {
// handle not expected exception
e.printStackTrace();
}