在Java中,如何从一个大文本文件中检测出1500个随机行?

在Java中,如何从一个大文本文件中检测出1500个随机行?,java,random,Java,Random,我是Java新手。我有一个学校项目。我应该在一个大的文本文件中检测1500个随机行?实际上,文本文件包含500万行。我想逐行读取一个.txt文件,然后随机检测1500行,并将随机行写入新的.txt文件 在这件事上你能帮我吗 提前谢谢 只需选择1500个介于0和5000 000之间的随机数,并从文件中按此数字获取行。首先,创建一个扫描对象来解析文件: File file = new File("filename.txt"); Scanner scanner = new Scanner(file);

我是Java新手。我有一个学校项目。我应该在一个大的文本文件中检测1500个随机行?实际上,文本文件包含500万行。我想逐行读取一个.txt文件,然后随机检测1500行,并将随机行写入新的.txt文件 在这件事上你能帮我吗


提前谢谢

只需选择1500个介于0和5000 000之间的随机数,并从文件中按此数字获取行。

首先,创建一个扫描对象来解析文件:

File file = new File("filename.txt");
Scanner scanner = new Scanner(file);
然后,使用
.nextLine()
方法读入每一行,使用新的随机整数更改正在读取的行:

Random rand = new Random();
int  randomInt;
String line;

for (int j = 0; j < 1500; j++){
    randomInt =  = rand.nextInt(numberOfLinesInFile + 1);
    for (int i = 0; i < randomInt + 1; i++) {
        line = scanner.readLine();
    }
    newString += line;
}
Random rand=new Random();
int-randomInt;
弦线;
对于(int j=0;j<1500;j++){
randomInt==rand.nextInt(numberOfLinesInFile+1);
对于(int i=0;i
newString
将包含1500行的新列表


您还可以生成1500个随机数,创建一个要读取的行数组,然后仅在计数器等于这些行号时添加正在读取的行。这将减少循环的数量,以实现相同的结果。以上内容应该足以让您继续……

您的意思是“选择”而不是“检测”吗?你能选择一条线不止一次吗?你尝试过什么?在寻求帮助之前,你应该先解决一个(琐碎的)问题:因此,向下投票。我正确地记住了答案和评论之间的区别,因此:StackOverflow不是一个真正的家庭作业网站,所以我们不回答这类问题。如果我们有一个很好的尝试,并表现出一些理解,然后来到我们的小,原子的问题,我们将非常乐意帮助在一种方式,将扩大您的学习。除此之外,欢迎来到SO,我希望您在这里过得愉快。我正在尝试使用RandomAccessFile、LineIterator和经典的BufferedReader方法,但这些似乎不是好的解决方案。亲爱的Joni,您是对的。我的意思是选择而不是检测。如果你能帮助我,我将非常感激。