欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

以下用法會(huì)使每行都少首字符

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

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

建議使用一下方法

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

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

小結(jié)一下

使用readLine()一定要注意

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

2:沒有數(shù)據(jù)時(shí)會(huì)阻塞,在數(shù)據(jù)流異?;驍嚅_時(shí)才會(huì)返回null

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

項(xiàng)目經(jīng)驗(yàn)

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

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

發(fā)現(xiàn)每行的第一個(gè)字符都沒有顯示出來,原因呢:b=bf.read())!=-1 每次都會(huì)先讀取一個(gè)字節(jié)出來,所以后面的bf.readLine());讀取的就是每行少一個(gè)字節(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(),指針都會(huì)移動(dòng)的。所以得到的是隔行輸出。

正確的代碼如下

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

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

相關(guān)文章

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

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

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

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

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

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

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

    java的JIT 工作原理簡單介紹

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

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

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

    Spring自動(dòng)裝配與掃描注解代碼詳解

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

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

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

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

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

    Java職責(zé)鏈模式的深入了解

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

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

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

最新評(píng)論