文件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个开端是什么?
答案 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);