因为你这一句BufferedReader bis = new BufferedReader(isr);在while循环中,就每次都会创建一个BufferedReader(isr)对象,但是只有第一个包装了isr,能读取到第一行,后面的就都读不到数据
内层循环与 i 没有任何关系,外层循环也就起不到作用,
如果你想读取指定行数,并打印行数,这样写比较合适- import java.io.*;
- public class test {
- public static void main(String[] args) throws IOException{
- File file =new File("a.txt"); //随便读取一个文本文件,最好文件大一点才会出现问题
- FileInputStream fis =new FileInputStream(file);
- InputStreamReader isr =new InputStreamReader(fis);
- BufferedReader bis = new BufferedReader(isr);
- for (int i=0,b=1;i<10 ;i++,b++ )
- {
- //if(i==5){break;}
- System.out.println(b+".\t"+bis.readLine()); //这里会打印出null ,为什么 ,怎么解决
- }
- }
- }
复制代码 |