java文件读取怎么实现从第几行开始读取?

我知道可以用RandomAccessFile类实现,但是具体是怎么实现的,貌似readLine()只能从当前位置开始,希望大神可以给出一段代码,让小弟学习学习,万分感谢!

import java.io.BufferedReader;
import java.io.FileReader;
 
public class Test {
public static void main(String[] args) throws Exception {
    
    String line = null;
    int n = 3;//从第三行开始读取
    BufferedReader br = new BufferedReader(new FileReader("d:/test.txt"));

    while (n -- > 1 ) {
     br.readLine();
    }
    while ((line = br.readLine()) != null) {
     System.out.println(line);
    }
    br.close();
    }

}

追问

你这个还是要从第一行开始读啊,有没有其他方法? 对了,如果是从跳过字节方法方法是什么实现的?
比如:
a
am
ant
are
从第三行开始读,怎么实现,前面是有多少个字节? 我会追加分的,谢谢啊

追答

水平不够,其它的方法我不会了,不好意思。我觉得txt文件中没有定位行的标志,要读取第几行还是要一行一行数下去的。跳过字节的方法,我记得好像有一个 skip方法,你试下。或者百度搜一下它的用法。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-14
你应该是使用文件流读取文件吧?
在你的代码中读取readLine()的代码前,加入判断,如果计数器小于你指定的数字,continue。

java文件读取怎么实现从第几行开始读取?
import java.io.BufferedReader;import java.io.FileReader; public class Test {public static void main(String[] args) throws Exception { String line = null; int n = 3;\/\/从第三行开始读取 BufferedReader br = new BufferedReader(new FileReader("d:\/test.txt")); while (...

java如何实现读取一个文本中指定列的信息
使用readLine方法读取。不要第一行,从第二行开始处理数据,读取的每一行调用split(" ")方法获取每一行为3个长度的数组,然后取数组的第一个元素,然后再调用replaceAll方法把空格去掉,就能正确拿到姓名那一列了。

java中怎样从文件的第二行读起
Sanner 对象有个readLine()方法,就是一行一行的读,当读出第一行的时候你不用就可以了,然后再读下一行。其实我感觉你这样做有点过于复杂了,每一行的信息都是一个人的信息对吧?你可以将这些信息封装成一个类,比如People类,有五个属性,然后有几行数据就有几个People对象。你保存到文件的时候直接...

JAVA如何按行数读取txt? 比如我要读第10行到第100行 或者第1000行 到第...
用LineNumberReader行号读取器 FileReader f=new FileReader("test.txt");LineNumberReader l=new LineNumberReader(f);l.setLineNumber(10); \/\/跳到第10行 for(int i=10;i<=100;i++){ System.out.println( l.readLine()); \/\/显示第10-100行 } l.close();f.close();...

java 读取txt文件 想自定义从第几个字节开始读和读几个字节 怎么...
1.想自定义从第几个字节开始读 使用java.io.RandomAccessFile类,可使用构造方法RandomAccessFile af=new RandomAccessFile("C:\\\\1.txt","r");如果想从第100个字节开始读,可使用其方法:public void seek(long pos),如af.seek(100);2.读几个字节所有的输入流都有方法:public int read(byte[...

用java怎样将一个文件中特定行列的数据读取出来
当读到某行是以#开始的,表明这个不是数据,而是列名,然后把读取的列存放到一个数组中,你可以在列名之间使用分隔符,比如:Number : Name : A : B : Value;通过读取指定的列名,你可以得到,列名在数组中对应的索引值。对于存放数据的列就不加#,或者换成其他的标识符,同样把读取...

java怎样从指定行号开始读取文txt文件?
默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用 setLineNumber(int) 更改行号。但要注意的是,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。可认为行在遇到以下符号之一时结束:换行符('\\n')、回车符('\\r')...

java读取txt从第四行开始每行为一个对象存放进list
public static void main(String[] args) { \/\/ TODO Auto-generated method stub File file = new File("C:\/zc.txt");BufferedReader reader = null;String tempString = null;int line =1;try { System.out.println("以行为单位读取文件内容,一次读一整行:");reader = new BufferedReader...

java从从控制台输入只从第二行开始读
加一个变量控制就可以了:int count=0;while((str=console.nextLine())!=null){ if(count==0){ continue;\/\/这样的话,第一次读取的话就从这儿返回了,然后就是第二行了} count=1;……

java读取文本文件后怎样算出文本文件的行数
BufferedReader br = new BufferedReader(fr); \/\/ 在定义好的流基础上套接一个处理流,用于更加效率的读取文件(一行一行的读取)int x = 0; \/\/ 用于统计行数,从0开始 while(br.readLine() != null) { \/\/ readLine()方法是按行读的,返回值是这行的内容 x++; \/\/ 每读一行,...

相似回答