BufferedReader
BufferedReader br = new BufferedReader(isr); String line = br.readLine();//为什么不用String line=""; while(line != null){ System.out.println(line);//为什么这句的在控制台输出与下一句的控制台输出不一样的,这句有内容但下一句就为null? line = br.readLine(); System.out.println(line); }
其实问题的原因很简单,程序中判断字符是否已经完全打印的语句 while((c = br。read()) != -1) 在第一次执行的时候已经读了一个字符出来,然后光标就会后移一位,接下来的循环中s=br。readLine();读到的就只是后续的字符串了,因此会少一个字符,解决的方法也不难,把判断条件改掉就是了 我做了一下小小的改动便可解决 import java。
io。*; class Test { public static void main(String arg[])throws IOException{ InputStreamReader isr = new InputStreamReader(System。
in); BufferedReader br = new BufferedReader(isr); int c; do{ String s = br。readLine(); System。out。println(s); }while(c = br。
read()!=-1); } } 上面这个程序就可以完成想要的功能了。
呵呵 另外,通常在BufferedReader类使用之后都会用一个flush()方法,我看有些网友也有疑问,其实BufferedReader用了一个系统级的缓冲区,只有当缓冲区满了的时候才会输出,如果没有满而又想要操作缓冲区的话,就只能用flush()方法来清空缓冲区,让结果输出,然后操作 。
答:你让 BufferedReader = new 原来文件详情>>
答:google "java 缓冲池"详情>>
答:百度里搜张孝祥 非常好的视频教程详情>>