java - Reader读取文件时缺少行

标签 java

我的项目中有一个名为 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"
]

我不知道缺少内容。

最佳答案

您调用 readLine() 两次 - 一次用于检查,一次用于实际读取,因此每隔一行都会被丢弃以进行检查。

常见的模式是

bReader = new BufferedReader(new FileReader(JSON_FILE));
String line;

while ((line = bReader.readLine()) != null) {
    System.out.println(line);
}

关于java - Reader读取文件时缺少行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326826/

相关文章:

java - 如何使用 Spring 和 Ldap 将登录用户重定向到主页

java - 自定义底部导航栏项目布局

java - 使用 7zip 扩展文件

java - 如何在 hazelcast 3.x 中显示所有结构名称

java - 将字符串值映射到相应的格式

java - 检索本周的星期一的日期

java - 忘记密码链接 : How to validate link?

java - MongoDB 查询无效

实现类的Java Null点异常?

java子类有方法返回它的类