来自file.txt的随机行

时间:2016-03-02 14:30:02

标签: java

为什么我的随机不起作用的任何提示?所有我输入的都是从第一个到第11个的堆叠线。我认为这将是一个小错误,但我无法弄明白:/

package pl.mtgpackgenerator;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;

public class Test {
public static void main(String[] args) throws IOException {

    Random random = new Random();
    int randomInt = random.nextInt(59);
    FileReader fr = new FileReader("Common.txt");
    BufferedReader reader2 = new BufferedReader(fr);
    String line = reader2.readLine();

    for (int i = 0; i <= 10; i++) {
          line = reader2.readLine();
          System.out.println(line);
        }
    reader2.close();
    }
}

4 个答案:

答案 0 :(得分:2)

我们需要使用randomInt检查行号并仅打印该行(如果存在)(例如下面的例子)。在上面的代码中,randomInt不会在任何地方使用。

int index = 0;
while( (line = br.readLine() ) != null) {
    if(index++ == randomInt){
        System.out.println(line);
        break;
    }
}

答案 1 :(得分:1)

好吧,它会找我,因为你明确地从文件中读了前10行,而且你不能随意使用。

例如,您可以逐个阅读ArrayListStrings的所有行,然后使用randomIntrandomInt处打印一行数。就像arraylist.get(randomInt)一样使用它;如果您将列表命名为arraylist

答案 2 :(得分:0)

@gliacomo说,如果你引用代码,请执行以下操作:

time scriptname

答案 3 :(得分:0)

在Java 1.8中,您可以这样做

import java.nio.file.Files;
...
Random random = new Random();
int randomInt = random.nextInt(59);
List<String> lines = Files.readAllLines(new File("Common.txt"))
String resultString = lines.get(randomInt);