【问题标题】:Java - Read from .txt file into a ObjectJava - 从 .txt 文件读入对象
【发布时间】:2018-03-01 05:02:00
【问题描述】:

我有一个名为 Question 的对象。它具有以下属性:

  • 字符串问题、选项1、选项2、选项3、答案

  • 双重难度

  • int 类别

我有一个名为 questions.txt 的文件,其中包含有关这些属性的信息,属性用逗号分隔。 (每行 1 个对象)

例如

胭脂红是哪种颜色的鲜艳阴影?,蓝色,绿色,黄色,红色,1,2

我想读取文件的每一行,创建一个 Object Question 并将其添加到一个名为 questionBank 的 ArrayList 中。

对于上面提到的示例,这将是创建新对象的结果。

问题 = 胭脂红是哪种颜色的鲜艳色调?

option1 = 蓝色

option2 = 绿色

option3 = 黄色

答案 = 红色

难度 = 1

类别 = 2

到目前为止,我已经获得了以下代码,但不知道如何提取逗号之间的每个属性,以便在对象实例化期间将其用作参数。

Scanner input = new Scanner(new File("/Users/usaamahpatel/IdeaProjects/sdd_assignment/src/questions.txt"));
    input.useDelimiter(",");

    while (input.hasNext()) {
        System.out.println(input.next());
    }

这是我从上面的代码得到的输出:

Carmine is a vivid shade of which colour?
Blue
Green
Yellow
Red
1
2

如您所见,它在逗号之间打印每个项目,我如何为一个对象提取每行的所有属性等等?

【问题讨论】:

标签: java file object java.util.scanner


【解决方案1】:

假设您想要的每个问题都由换行符分隔,您可以使用input.nextLine().split(",") 来获取字符串数组,其中每个元素都是一个属性。然后,您可以使用Double.valueOf()Integer.valueOf() 将难度和类别解析为正确的类型。

【讨论】:

    【解决方案2】:

    我假设您的文件中有不止一行,所以不止一个问题,对吧?

    然后使用分隔符而不是,,而是使用newline 逐行读取(或使用Files#readLines。然后您知道每一行代表一个对象。要检索对象的不同属性,您可以用,分割线并填充对象

    【讨论】:

      猜你喜欢
      • 2013-04-06
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 2015-05-29
      • 2013-10-04
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多