亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于BufferedReader的read()和readLine()的區(qū)別

 更新時間:2021年12月09日 10:45:56   作者:更好的自己520  
這篇文章主要介紹了關(guān)于BufferedReader的read()和readLine()的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

BufferedReader的read()和readLine()區(qū)別

從一個有若干行deep文件中依次讀取各行,處理后輸出,如果用以下方法,則會出現(xiàn)除第一行外首字符丟失的現(xiàn)象

String str  = null;
br=new BufferedReader(new FileReader(fileName));
do{
str = buf.readLine()); 
}while(br.read()!=-1);

以下用法會使每行都少首字符

while(br.read() != -1){
str = br.readLine();
}

原因在于br.read()!=-1這判斷條件上,因為在執(zhí)行這個條件的時候它已經(jīng)讀取了一個字符,然而在這里并沒有對讀取出來的這個字符做處理,所以會出現(xiàn)少一個字符,如果你這里寫的是while(br.readLine()!=null)會出現(xiàn)隔一行少一行。

建議使用一下方法

String str = null;
while((str = br.readLine()) != null){
//System.out.println(str);//此時str就保存了一行字符串
}

這樣應(yīng)該就可以無字符丟失地得到一行了

小結(jié)一下

使用readLine()一定要注意

1:讀入的數(shù)據(jù)要注意有/r,/n或/r/n

2:沒有數(shù)據(jù)時會阻塞,在數(shù)據(jù)流異常或斷開時才會返回null

3:使用socket之類的數(shù)據(jù)流時,要避免使用readLine(),以免為了等待一個換行/回車而一直堵塞

項目經(jīng)驗

1.讀取一個txt文件,方法很多種我使用了字符流來讀?。榱朔奖悖?/p>

   FileReader fr = new FileReader("f:\\TestJava.Java");
   BufferedReader bf = new BufferedReader(fr);
   //這里進行讀取
   int b;
   while((b=bf.read())!=-1){
    System.out.println(bf.readLine());
   }

發(fā)現(xiàn)每行的第一個字符都沒有顯示出來,原因呢:b=bf.read())!=-1 每次都會先讀取一個字節(jié)出來,所以后面的bf.readLine());讀取的就是每行少一個字節(jié)。所以,應(yīng)該使用

String valueString = null;
   while ((valueString=bf.readLine())!=null){    
    System.out.println(valueString);
   }

BufferedReader.readLine()總結(jié)

BufferedReader.readLine()

最近寫了段用于獲取執(zhí)行命令的返回值的代碼,如下:

while(br.readLine()!null) 
{ 
    msg=br.readLine(); 
}

然后顯示的結(jié)果卻是隔行輸出的。想了下, 應(yīng)該是每調(diào)用一次read()或者readLine(),指針都會移動的。所以得到的是隔行輸出。

正確的代碼如下

BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    String msg = null;
while((msg = br.readLine())!= null)
 { 
System.out.println(msg); 
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java中的封裝、繼承、多態(tài)

    詳解Java中的封裝、繼承、多態(tài)

    本文主要介紹了Java中的封裝、繼承、多態(tài)的相關(guān)知識,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Java幾種常用JSON庫性能比較詳解

    Java幾種常用JSON庫性能比較詳解

    這篇文章主要介紹了Java幾種常用JSON庫性能比較詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 利用java實現(xiàn)二叉搜索樹

    利用java實現(xiàn)二叉搜索樹

    這篇文章主要介紹了利用java實現(xiàn)二叉搜索樹,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java的JIT 工作原理簡單介紹

    java的JIT 工作原理簡單介紹

    這篇文章主要介紹了java的JIT 工作原理簡單介紹的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • IDEA配置tomcat服務(wù)器全過程

    IDEA配置tomcat服務(wù)器全過程

    這篇文章主要介紹了IDEA配置tomcat服務(wù)器全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring自動裝配與掃描注解代碼詳解

    Spring自動裝配與掃描注解代碼詳解

    這篇文章主要介紹了Spring自動裝配與掃描注解代碼詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • spring多數(shù)據(jù)源配置實現(xiàn)方法實例分析

    spring多數(shù)據(jù)源配置實現(xiàn)方法實例分析

    這篇文章主要介紹了spring多數(shù)據(jù)源配置實現(xiàn)方法,結(jié)合實例形式分析了spring多數(shù)據(jù)源配置相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2019-12-12
  • Java并發(fā)編程之Exchanger方法詳解

    Java并發(fā)編程之Exchanger方法詳解

    這篇文章主要介紹了Java并發(fā)編程之Exchanger方法詳解,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java職責鏈模式的深入了解

    Java職責鏈模式的深入了解

    這篇文章主要為大家介紹了Java職責鏈模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • java高并發(fā)的線程中斷的幾種方式詳解

    java高并發(fā)的線程中斷的幾種方式詳解

    這篇文章主要介紹了Java線程中斷機制幾種方法及示例,向大家分享了這幾種方法的介紹幾代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2021-10-10

最新評論