文件无法正确读取
问题描述:
我试图从dbpedia读取json文件并解析它。但是我写的代码无法正确读取整个json文件,因此出现了解析错误。这里是我的阅读和分析代码...文件无法正确读取
URL url=new URL("http://dbpedia.org/data3/assembly.json");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine="asdf";
while ((in.readLine()) != null)
{
if (inputLine=="asdf")
inputLine=in.readLine();
else
inputLine+=in.readLine();
//System.out.println(inputLine);
}
System.out.println(inputLine);
Object obj = parser.parse(inputLine);
JSONObject jsonObject = (JSONObject) obj;
答
您可以创建一个辅助方法来读取URL文件:
private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1) {
buffer.append(chars, 0, read);
}
return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
,那么你可以调用的方法是这样
try {
JSONObject json = new JSONObject(readUrl("http://dbpedia.org/data3/assembly.json"));
...
} catch (JSONException e) {
e.printStackTrace();
}
这取决于你,如果你需要StringBuffer或StringBuilder
什么是错误信息? – Paolo
使用'String.equals'来比较字符串 – Reimeus
错误消息是这样的 错误:第1行解析错误: .../ontology/assembly“:{”http://www.w3.o --- --------------------^ 期待'EOF','}',',',']',''':' 其他的我比较实际json文件和“inputLine”变量的输出并不完全相同。 –