当前位置:  技术问答>java相关

非常奇怪的IO,bufferedReader.readLine()问题。。。

    来源: 互联网  发布时间:2015-09-15

    本文导语:  BufferedReader br=new BufferedReader(file);  while(br.read()!=-1){  System.out.println(br.readLine());  }  这样写可打出文件中所有的行。而下面的:  BufferedReader br=new BufferedReader(file);  while(br.readLine()!=null){  System.out.println(br.readLine());...

BufferedReader br=new BufferedReader(file); 
while(br.read()!=-1){ 
System.out.println(br.readLine()); 

这样写可打出文件中所有的行。而下面的: 
BufferedReader br=new BufferedReader(file); 
while(br.readLine()!=null){ 
System.out.println(br.readLine()); 

却是隔行打印,我用了一个有20行的文本文件测试,结果上边的能打出全部行而下边的只打出了2,4,6,8这些行。为什么?奇怪!!! 
还有一个问题,用br.read()的时候,每行的第一个字符都没了,咋回事???晕死我了。。。

|
应该是while((str=br.readLine())!=null){
   System.out.println(str);
}

|
你每调用一次read()或者readLine(),指针都会移动的。像下面这么写就可以了:
BufferedReader br=new BufferedReader(file); 
String line = null;
while((line = br.readLine()) != null){ 
System.out.println(line); 
}

|
太簡單了吧!
br.read()已經從文件中讀走了一個字符;你再用br.readLine()當然
讀到的就是一行中少了第一個字符

第二種情況也同樣
你先是br.readLine()!=null讀出了一行,但並沒用System.out;而
再次用System.out.println(br.readLine())當然會輸出新的一行了;

如果你改成
BufferedReader br=new BufferedReader(file); 
char ch;
while((ch=br.read())!=-1){ 
System.out.print(ch);
System.out.println(br.readLine()); 



BufferedReader br=new BufferedReader(file); 
String str;
while((str=br.readLine())!=null){ 
System.out.println(str); 

就一點也不奇怪了

|
while(br.readLine()!=null){ 
System.out.println(br.readLine()); 

其中每个循环(一次打印)br.readLine()被执行了两次,当然是各行打印!!

|
你自己写错了,
两段while里的都不一样,
给分吧!

哈哈!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • shm_open函数问题.奇怪!!!奇怪!!!!!
  • 奇怪的问题 奇怪的问题,向大家请教
  • 好奇怪的问题哎………………怎么也不能安装!
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • 问一个很奇怪的线程调用的问题
  • 很奇怪的shell问题
  • 一个奇怪的路径问题
  • 奇怪!关于字串参数的问题?
  • ————奇怪的现象:不能关闭TOMCAT的问题————
  • 使用FC4一个奇怪问题,放入光盘后死机?
  • !!!初学Java,遇到一个奇怪问题,请大家回答!!!
  • SOCKET发送奇怪问题!!!
  • 请教redhat8.0中的两个问题~奇怪啊~
  • 引用的奇怪问题
  • 碰到个很奇怪的串口问题
  • killall 奇怪的问题,百思不得其解
  • jsp Web 部署后的奇怪问题???
  • rmmod出现的奇怪问题,求解,急急!
  • 奇怪!奇怪!真奇怪!!!
  • 奇怪奇怪真奇怪
  • 编程技术其它 iis7站长之家
  • 奇怪奇怪...........?????...........
  • solaris上的C程序,编译报错: 存储类只能使用register,奇怪,奇怪!
  • 奇怪!奇怪!我用jbuilder编jsp程序,从数据库中取出的字符串型字段却显示16进制数
  • 奇怪啊,奇怪,为什么我的JB7做EJB时,只要在EJB设计面板上随便做点东西,我的EJB的JAVA的源码就会变的不见了,或者少了很多字段申明??
  • 奇怪,CSDN的贴子,提问部分我最多能看到第4行??!!
  • accept,recvfrom接收到奇怪的ip
  • 一个特奇怪的函数申明错误
  • 一些奇怪的现象,帮帮我


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3