最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于自定義BufferedReader中的read和readLine方法

 更新時(shí)間:2017年12月15日 14:45:42   作者:fu1990@126  
下面小編就為大家分享一篇基于自定義BufferedReader中的read和readLine方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

實(shí)例如下所示:

package day0208;
 
import java.io.FileReader;
import java.io.IOException;
 
/*
 * 自定義讀取緩沖區(qū),實(shí)現(xiàn)BufferedReader功能
 * 分析:
 * 緩沖區(qū)就是封裝了一個(gè)數(shù)組,并對(duì)外提供了更多的方法對(duì)數(shù)組進(jìn)行訪(fǎng)問(wèn)
 * 其實(shí)這些方法最終操作的都是數(shù)組的角標(biāo)
 * 緩沖的原理:
 * 其實(shí)就是從源中獲取一批數(shù)據(jù)裝進(jìn)緩沖區(qū),再?gòu)木彌_區(qū)取出數(shù)據(jù)
 * 當(dāng)此次取完后,繼續(xù)從源中取出一批數(shù)據(jù)到緩沖區(qū)
 * 當(dāng)源中的數(shù)據(jù)取光時(shí),用-1作為結(jié)束標(biāo)記。
 */
public class MyBufferReader {
    private FileReader r;
    MyBufferReader(FileReader r){
       this.r=r;
    }
    //定義一個(gè)數(shù)組作為緩沖區(qū)
    private char[] buf=new char[1024];
    //定義個(gè)指針用于操作這個(gè)數(shù)組的元素,當(dāng)操作到最后一個(gè)元素后,指針應(yīng)該歸零
    private int pos=0;
    //定義一個(gè)計(jì)數(shù)器,用于記錄緩沖區(qū)中的數(shù)據(jù)個(gè)數(shù),當(dāng)該數(shù)據(jù)減到0,就從源中繼續(xù)獲取數(shù)據(jù)到緩沖區(qū)中。
    private int count =0;
    public int myRead() throws IOException{//自定義read方法
       if(count==0){//如果緩沖區(qū)中沒(méi)有數(shù)據(jù),則從源中獲取一批數(shù)據(jù)到緩沖區(qū)
           count=r.read(buf);
           pos=0;
       }
       if(count<0){
           return -1;
       }
       char ch=buf[pos++];//一次從緩沖區(qū)獲取一個(gè)字符
       count--;
       return ch;
    }
    public String myReadLine() throws IOException{//自定義readLine犯法
       StringBuilder sb=new StringBuilder();
       int ch=0;
       while((ch=myRead())!=-1){//只要還有數(shù)據(jù)就進(jìn)行讀取
           if(ch=='\n')//java換行符,停止讀取,將已經(jīng)讀取到的數(shù)據(jù)輸出返回
              return sb.toString();
           if(ch=='\r')
              continue;//window下的換行符,不讀也不換行,繼續(xù)讀取后面的字符
           sb.append((char)ch);//正常情況下,不斷進(jìn)行讀取
       }
       if(sb.length()!=0)//如果文檔中中有字符,就返回讀取到的數(shù)據(jù)
           return sb.toString();
       return null;//如果是空文檔,就返回空
    }
    public void myClose() throws IOException{
       r.close();//關(guān)閉流資源
    }
}

這樣就Ok了,可以進(jìn)行檢測(cè)

package day0208;
 
import java.io.FileReader;
import java.io.IOException;
 
public class MyDemo {
  public static void main(String[] args) throws IOException {
    FileReader fw=new FileReader("C:\\demo2.txt");
    MyBufferReader br=new MyBufferReader(fw);
    String line1=null;
    while((line1=br.myReadLine())!=null){
      System.out.println(line1);
    }
//   int num=0;
//   while((num=br.myRead())!=-1){
//     System.out.print((char)num);
//   }
    br.myClose();
  }
}

兩種檢測(cè)方法都可以。

以上這篇基于自定義BufferedReader中的read和readLine方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決idea中maven新增的配置文件xx.xml沒(méi)生效問(wèn)題

    解決idea中maven新增的配置文件xx.xml沒(méi)生效問(wèn)題

    這篇文章主要介紹了如何解決idea中maven新增的配置文件xx.xml沒(méi)生效問(wèn)題,公司項(xiàng)目有用自己的`私服,Maven正常去私服下載jar包是沒(méi)問(wèn)題的,但阿里云鏡像找不到相關(guān)的jar包報(bào)錯(cuò),文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • JAVA與SQL 中的null與NULL解析

    JAVA與SQL 中的null與NULL解析

    這篇文章主要介紹了JAVA與SQL 中的null與NULL解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JdbcTemplate方法介紹與增刪改查操作實(shí)現(xiàn)

    JdbcTemplate方法介紹與增刪改查操作實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于JdbcTemplate方法與增刪改查操作實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JdbcTemplate具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java?詳細(xì)講解用堆解決Top-k問(wèn)題

    Java?詳細(xì)講解用堆解決Top-k問(wèn)題

    TopK問(wèn)題即在N個(gè)數(shù)中找出最大的前K個(gè),這篇文章將詳細(xì)講解如何利用小根堆的方法解決TopK問(wèn)題,文中代碼具有一定參考價(jià)值,快跟隨小編一起學(xué)習(xí)一下吧
    2022-04-04
  • Java將byte[]轉(zhuǎn)圖片存儲(chǔ)到本地的案例

    Java將byte[]轉(zhuǎn)圖片存儲(chǔ)到本地的案例

    這篇文章主要介紹了Java將byte[]轉(zhuǎn)圖片存儲(chǔ)到本地的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • maven項(xiàng)目在svn中的上傳與檢出的方法

    maven項(xiàng)目在svn中的上傳與檢出的方法

    企業(yè)開(kāi)發(fā)中經(jīng)常使用svn來(lái)為我們控制代碼版本,也經(jīng)常使用maven來(lái)管理項(xiàng)目。下面將介紹一下如何將maven項(xiàng)目上傳到svn中,如何將項(xiàng)目從svn中檢出,感興趣的小伙伴們可以參考一下
    2019-02-02
  • SpringBoot如何讀取resources目錄下的文件

    SpringBoot如何讀取resources目錄下的文件

    這篇文章主要介紹了SpringBoot如何讀取resources目錄下的文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解JVM類(lèi)加載機(jī)制及類(lèi)緩存問(wèn)題的處理方法

    詳解JVM類(lèi)加載機(jī)制及類(lèi)緩存問(wèn)題的處理方法

    這篇文章主要給大家介紹了關(guān)于JVM類(lèi)加載機(jī)制及類(lèi)緩存問(wèn)題的處理方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Struts2學(xué)習(xí)筆記(1)-入門(mén)教程

    Struts2學(xué)習(xí)筆記(1)-入門(mén)教程

    本文是一個(gè)Struts2的簡(jiǎn)單入門(mén)教程,比較簡(jiǎn)單,希望能給大家做一個(gè)參考。
    2016-06-06
  • eclipse 安裝lombok插件

    eclipse 安裝lombok插件

    這篇文章主要介紹了eclipse 安裝lombok插件的詳細(xì)步驟,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07

最新評(píng)論

肇庆市| 邹平县| 洛南县| 密山市| 河池市| 卓尼县| 蓬安县| 南宁市| 本溪市| 略阳县| 昌宁县| 汉寿县| 额敏县| 康平县| 天全县| 长治市| 广东省| 清水县| 宜城市| 宜兴市| 屯昌县| 甘德县| 富阳市| 厦门市| 共和县| 桐城市| 桂阳县| 西峡县| 泽普县| 宁晋县| 东城区| 广水市| 邛崃市| 阳江市| 昭苏县| 米脂县| 宣汉县| 衡阳县| 辽阳县| 纳雍县| 桦甸市|