我如何从txt文件中读取文本并将它们分配给java中的数组?

时间:2014-01-15 00:37:04

标签: java arrays

文件I / O和Java的新手。做一个我必须从txt文件中读取文本的项目将它们分配给数组。这就是我现在所拥有的(所有这一切都是从文件中读取文本并将其输出到控制台),只是想知道如何将这些文件分配给数组(稍后在带有gui的琐事类型游戏中实现)?

package pokemontrivia;
import java.io.*;
import java.util.*;

public class Pokemontrivia {

    public static void main(String[] args) throws FileNotFoundException, IOException {
        InputStreamReader reader = new InputStreamReader(Pokemontrivia.class.getClassLoader().getResourceAsStream(".\\pokemontrivia\\pokemontriviaquestions.txt"));
        BufferedReader in = new BufferedReader(reader);
        String line;
    while((line = in.readLine()) != null)
    {
    System.out.println(line);
    }

    }
}

这是我的txt文件

在第二代口袋妖怪游戏中你能捕到什么闪亮的口袋妖怪?

在你的队伍中你需要什么2个口袋妖怪来捕捉Regi? 什么口袋妖怪游戏来自第三代?

有多少神奇宝贝物种?

你可以在第二代口袋妖怪游戏中为一个Onix交易什么口袋妖怪?

哪个理发兄弟给你最友谊?

Eevee有多少次进化?

Bulbasaur的最后进化是什么?

哪个神奇宝贝是第一个让你扮演女孩的神奇宝贝?

第4代的3个开端是什么?

2 个答案:

答案 0 :(得分:0)

就像已经提到的那样,如果您不知道要使用Vector或ArrayList(我更喜欢ArrayList)的文本行数。如果你真的需要它作为一个数组,你总是可以使用ArrayList的toArray()方法。

至于将每个问题添加到ArrayList,您可以使用add()方法将每个问题添加为新条目(假设每行都是一个问题)。

所以在这种情况下,我会做这样的事情:

List<String> questions = new ArrayList<String>();
while((line = in.readLine()) != null)
{
    questions.add(line);
}

然后,您可以根据自己的问题列表做任何您想做的事情。如果您想了解有关ArrayList使用的更多信息,我会检查this

编辑:我现在意识到<String>是什么可能并不清楚。这是使用Generics来帮助确保我们知道ArrayList的每个成员的类型。有关泛型的更多信息,您可以查看Java的lesson on Generics

答案 1 :(得分:0)

最简单的方法是使用FileUtils.readLines()库中的Apache commons-io

List<String> lines = FileUtils.readLines(file);