我的项目中有一个名为 basic_questions.json 的本地JSON文件。我还有一个ParseJSON类来接收这个文件的内容。
basic_questions.json
[
{
"correct" : "answer2",
"answer1" : "Yıldırım",
"answer0" : "Şimşek",
"question" : "Halk arasındaki adı Ebemkuşağı olan yağmurdan sonra gökyüzünde oluşan kemer biçimindeki renkli görüntüdür?",
"answer3" : "Hortum",
"answer2" : "Gökkuşağı"
},
{
"correct" : "answer0",
"answer1" : "Kardelen",
"answer0" : "Yediveren",
"question" : "Yılda birkaç kez meyve veren, çiçek açan bitki hangisidir?",
"answer3" : "Gelincik",
"answer2" : "Orkide"
},
{
"correct" : "answer3",
"answer1" : "Tenis",
"answer0" : "Hokey",
"question" : "Çim zemin üzerinde, ufak bir topa özel sopalarla vurularak belli bir deliğe sokma amaçlı oynanan oyuna ne ad verilir?",
"answer3" : "Golf",
"answer2" : "Hentbol"
}
]
ParseJSON.class
try {
bReader = new BufferedReader(new FileReader(JSON_FILE));
while (bReader.readLine()!=null) {
System.out.println(bReader.readLine());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bReader != null) bReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
输出:
{
"answer1" : "Yıldırım",
"question" : "Halk arasındaki adı Ebemkuşağı olan yağmurdan sonra gökyüzünde oluşan kemer biçimindeki renkli görüntüdür?",
"answer2" : "Gökkuşağı"
{
"answer1" : "Kardelen",
"question" : "Yılda birkaç kez meyve veren, çiçek açan bitki hangisidir?",
"answer2" : "Orkide"
{
"answer1" : "Tenis",
"question" : "Çim zemin üzerinde, ufak bir topa özel sopalarla vurularak belli bir deliğe sokma amaçlı oynanan oyuna ne ad verilir?",
"answer2" : "Hentbol"
]
我不知道内容不足。
答案 0 :(得分:4)
你拨打readLine()
两次 - 一次用于检查,一次用于实际读取,因此每一行都被丢弃以进行检查。
常见的模式是
bReader = new BufferedReader(new FileReader(JSON_FILE));
String line;
while ((line = bReader.readLine()) != null) {
System.out.println(line);
}
答案 1 :(得分:1)
你读了两行:
try {
bReader = new BufferedReader(new FileReader(JSON_FILE));
String line = null;
do{
line = bReader.readLine()
System.out.println(line);
}while (line!=null);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bReader != null) bReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}