Java 如何从文本文件中获取特定行并将其读入数组?(爪哇)

Java 如何从文本文件中获取特定行并将其读入数组?(爪哇),java,Java,我一直在尝试用javafx编写一个问答游戏,我将问题存储在一个文本文件中,然后随机分配一个数字,然后用它调用文本文件中相同数字的行,并将其读入数组 在网上查看之后,我似乎只能找到如何逐行阅读文本文件,而不是具体的一行。我也使用下面的代码来读取文本文件,但不确定从那里继续 File file = new File("/Users/administrator/Desktop/Short Questions.txt"); FileReader fileReader = new FileReader(f

我一直在尝试用javafx编写一个问答游戏,我将问题存储在一个文本文件中,然后随机分配一个数字,然后用它调用文本文件中相同数字的行,并将其读入数组

在网上查看之后,我似乎只能找到如何逐行阅读文本文件,而不是具体的一行。我也使用下面的代码来读取文本文件,但不确定从那里继续

File file = new File("/Users/administrator/Desktop/Short Questions.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;

这可能对您有所帮助

您需要根据文件位置更改文件路径


不必费心从文件中读取特定行,只需在结果列表中按索引查找问题即可

List<String> questions = Files.readAllLines(
    Paths.get("<your file path>")
);
使用
42
作为随机数生成器的种子,使随机序列可重复,这有利于测试。要使其真正成为psuedo random,请删除种子(例如just
new random()

如果您希望读取的数据的结构很复杂,那么使用一个助手库(如)将数据作为序列化JSON对象存储和检索。如果它更复杂,那么可以使用数据库


如果您有一个非常大的文件,并且您知道您希望读取的每个特定内容在文件中的位置,那么您可以使用查找。例如,如果文件中的所有问题的长度完全相同,并且您知道其中存储了多少个问题,那么可以相当容易地使用随机访问文件。但是,从您对需要执行的操作的描述来看,情况可能并非如此,读取所有内容而不是使用随机访问文件的简单解决方案更好。

请参阅,您可以读取这些行并将其存储在列表中。然后你可以从列表中随机抽取一个元素。除非有额外的信息(每行的字节偏移量),否则不可能只从文本文件中抽取一行而不读取所有的行。如果没有这种信息,第n行可以从第(n-1)个字符开始,或者以任意更大的偏移量开始(当然受总文件大小的限制):行可以为空或包含任意数量的字符。与fx无关,请删除标记
List<String> questions = Files.readAllLines(
    Paths.get("<your file path>")
);
Random random = new Random(42);
int randomQuestionIndex = random.nextInt(questions.size());
String randomQuestion = questions.get(randomQuestionIndex);