如何在java中实现读取一个txt文档中的随机一行

如题,如何在java中实现读取一个txt文档中的随机一行? 主要就是怎么随机读取

6个回答

根据楼上的说法,来总结一下吧,总体来说,就是将文件全部都读取出来,每一行存储到一个数组或集合中,然后再通过产生随机数,来对这个数组或是
集合进行随机的访问。这样一来就解决了

文本文件只能顺序读,不能随机读。你的需求只能是读取文本文件每一行到一个arraylist,然后得到下标范围,产生一个随机数,取那一行

furio000
叫我小韩就好了 回复caozhy: 谢谢回答,也就是把每一行都写入到一个数组中,然后通过数字随机打印吗?该如何提取每一行并写入数组呢?
接近 5 年之前 回复
furio000
叫我小韩就好了 回复caozhy: 谢谢回答,也就是把每一行都写入到一个数组中,然后通过数字随机打印吗?该如何提取每一行并写入数组呢?
接近 5 年之前 回复

先按照行内容缓存到内存中,然后读取

应该是把一个txt文档的数据用BufferedReader流的readLine() 方法把文档数据一行行的读出来,然后依次放到一个list中。
根据list的size再生成一个从0到size()-1的随机数,再根据这个随机数作为index到list中取出来,就可以实现你这个功能了。

furio000
叫我小韩就好了 回复只求真理: 谢谢
接近 5 年之前 回复
    BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\新建文本文档.txt"));
    LineNumberReader lbr=new LineNumberReader(new FileReader("C:\\Users\\Administrator\\Desktop\\新建文本文档.txt"));
    lbr.skip(Long.MAX_VALUE); 
    int i=lbr.getLineNumber();
    Random random=new Random();
    i=random.nextInt(i)+1;
    String s="";
    int m=0;
    while(null!=(s=br.readLine()))
    {
        if((m+1)==i)
            break;
        m++;
    }

    System.out.println(s);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问