我有一种方法需要从txt文件中选择一个随机单词,但它仅在某些时候有效。

该文件的内容如下:

Broccoli
Tomato
Kiwi
Kale
Tomatillo


我的代码:

import java.util.Random;
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public String getRandomItem(){
    Scanner fileIn = null;

    String temp = "";
    int r = randomGenerator.nextInt(5) + 1;
    byte i = 0;

    try {
        fileIn = new Scanner(new FileInputStream("bundles.txt"));
    } catch (FileNotFoundException e) {
        System.out.println("File not found.");
        System.exit(0);
    }

    while(i <= 5){
        temp = fileIn.nextLine();

        if(i == r){
            break;
        }

        i++;
    }

    fileIn.close();

    return temp;
}


有人可以告诉我我要去哪里错吗?

最佳答案

我将使用Files.readAllLines(Path)读取所有行一次,然后从中获得一个随机单词。就像是,

private static List<String> lines = null;
static {
    try {
        lines = Files.readAllLines(new File("bundles.txt").toPath());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private Random rand = new Random();

public String getRandomItem() {
    return lines.get(rand.nextInt(lines.size()));
}

07-23 14:59