简单的实现:
先取得一个随机数,得到要取得的行号line,可参考:Math.random()方法
然后 读取第line行数据
BufferedReader in = new BufferedReader(new FileReader("filename"));
        String str=null;
        for(int i=0;(str = in.readLine()) != null&&i<=line;++i){; }
if(str!=null&&i==line){System.out.println("the text is:"+str);
}else{
System.out.println("no text that you want!");
}
        in.close();
可能有更好的方法,仅供参考

解决方案 »

  1.   

    用RandomAccessFile来
    import java.io.RandomAccessFile代码sample:
    rf = new RandomAccessFile("F:\\nepalon\\ rtest.dat", "r");
    for(int i=0; i<10; i++){
    System.out.println("Value " + i + ":" + rf.readDouble());
    rf.seek(i);
    rf.close();
    }
      

  2.   

    同意楼上的,用RandomAccessFile就行
      

  3.   

    import java.io.*;
    import java.util.*;
    public class TestFileDelete{
    public static void main(String[] args){
    System.out.println(getLine("aaa.txt",2));
    }

    public static String getLine(String fileName,int lineNumber){

    File file=new File(fileName);
    if(!file.exists() || file.isDirectory()){
    return null;
    }
    String line=null;
    LineNumberReader in=null;
    try{
    in=new LineNumberReader(new FileReader(file));
    while(in.getLineNumber()+1!=lineNumber){
    in.readLine();
    }
    line=in.readLine();
    in.close();
    in=null;
    return line;
    }
    catch(IOException ioe){
    if(in!=null){
    try{
    in.close();
    }
    catch(IOException ioee){
    }
    in=null;
    }
    System.out.println(ioe);
    return line;
    }
    }
    }
      

  4.   

    RandomAccessFile的seek移到随机位置上,然后读取就可以了,Random r=new Random();
    int s=r.nextInt(20)+1;//随机从第1-20行上取位置
    rf = new RandomAccessFile("F:\\nepalon\\ rtest.dat", "r");
    rf.seek(s);//移到随机的行数上
    System.out.println("Value " + i + ":" + rf.readDouble());//读取
    rf.close();