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

自定義BufferedReader的實(shí)例

 更新時(shí)間:2017年12月15日 14:32:49   作者:咯咯咯咯噠  
下面小編就為大家分享一篇自定義BufferedReader的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

緩沖區(qū)的建立目的就是增加傳輸性能,使我們傳輸數(shù)據(jù)更加快速

緩沖區(qū)的內(nèi)部其實(shí)很簡(jiǎn)單 就是在內(nèi)部封裝了一個(gè)數(shù)組 用數(shù)組來(lái)存儲(chǔ)數(shù)據(jù) 對(duì)外提供一些方法對(duì)數(shù)組進(jìn)行訪問(wèn)

其中這些方法的操作就是對(duì)數(shù)組的指針(角標(biāo))。

緩沖區(qū)的原理:從源中獲取一批數(shù)據(jù)到緩沖區(qū),再?gòu)木彌_區(qū)中一個(gè)一個(gè)取出 取完后用-1作為結(jié)束標(biāo)記

在BufferedReader中我們讀取數(shù)據(jù)方法有read() ,readLine()

read() 其參數(shù)為char[],cbuf,int off,int len。其返回值為-1

readLine()方法是一行一行的取 其內(nèi)部就像是一個(gè)字符串容器StringBuffder 其返回值為null;

首先定義一個(gè)類 在類中定義兩個(gè)讀取數(shù)據(jù)的方法 MyReader(),MyReadLine();

public class MyBufferedReader {
 private FileReader fr;
 
 private char[] buff = new char[1024];
 
 private int zz = 0;
 
 private int count = 0;
 
 MyBufferedReader(FileReader fr){
  this.fr = fr;
 }
 
 public int MyRead() throws IOException{
 if(count==0){
  count = fr.read(buff);
   zz =0;
 }
 if(count<0)
  return -1;
 
 char ch = buff[zz++];
 
 count--;
 return ch;
 
}
 public String MyReadLine() throws IOException{
  StringBuilder stb = new StringBuilder();
   
  int ch = 0;
  while((ch=MyRead())!=-1){
   
   if(ch=='\r')
    continue;
   if(ch=='\n')
    return stb.toString();
   
   stb.append((char)ch);
   
  }
  if(stb.length()!=0)
   return stb.toString();
  return null;
 }
 public void MyClose() throws IOException{
  fr.close();
 }
}

里面我定義了指針zz 和一個(gè)緩沖區(qū)計(jì)數(shù)器count來(lái)記錄緩沖區(qū)內(nèi)讀取數(shù)據(jù)的變化

當(dāng)count==0時(shí) 就往緩沖區(qū)內(nèi)讀入數(shù)據(jù) zz為0 從第一個(gè)數(shù)開(kāi)始讀

小于0時(shí)數(shù)據(jù)讀取完畢 返回-1

在MyReadLine()中 創(chuàng)建一個(gè)字符串容器StringBuilder 來(lái)存儲(chǔ)數(shù)據(jù)黨stb==\n時(shí) 一行讀取完畢其返回值為null;

以上這篇自定義BufferedReader的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java開(kāi)發(fā)分布式服務(wù)框架Dubbo服務(wù)引用過(guò)程詳解

    java開(kāi)發(fā)分布式服務(wù)框架Dubbo服務(wù)引用過(guò)程詳解

    這篇文章主要為大家介紹了java開(kāi)發(fā)分布式服務(wù)框架Dubbo服務(wù)引用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • springboot集成nacos報(bào)錯(cuò):get data from Nacos error,dataId:null.yaml的原因及解決方法

    springboot集成nacos報(bào)錯(cuò):get data from Nacos 

    這篇文章給大家介紹了springboot集成nacos報(bào)錯(cuò):get data from Nacos error,dataId:null.yaml的原因及解決方法,如果又遇到相同問(wèn)題的朋友可以參考閱讀本文
    2023-10-10
  • spring kafka框架中@KafkaListener 注解解讀和使用案例

    spring kafka框架中@KafkaListener 注解解讀和使用案例

    Kafka 目前主要作為一個(gè)分布式的發(fā)布訂閱式的消息系統(tǒng)使用,也是目前最流行的消息隊(duì)列系統(tǒng)之一,這篇文章主要介紹了kafka @KafkaListener 注解解讀,需要的朋友可以參考下
    2023-02-02
  • 利用Java實(shí)現(xiàn)mTLS調(diào)用

    利用Java實(shí)現(xiàn)mTLS調(diào)用

    這篇文章主要介紹使用 Java作為客戶端 與受 mTLS 保護(hù)的服務(wù)交互。為了對(duì)我們的 Java 客戶端進(jìn)行 ssl 配置,我們需要先設(shè)置一個(gè) SSLContext。這簡(jiǎn)化了事情,因?yàn)?SSLContext 可用于各種 http 客戶端,接下來(lái)我們一起進(jìn)入下面文章了解具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • java實(shí)現(xiàn)俄羅斯方塊小程序

    java實(shí)現(xiàn)俄羅斯方塊小程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)俄羅斯方塊,在eclipse環(huán)境下編寫(xiě)的俄羅斯方塊小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Java mockito單元測(cè)試實(shí)現(xiàn)過(guò)程解析

    Java mockito單元測(cè)試實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Java mockito單元測(cè)試實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 一文帶你了解Java選擇排序的原理與實(shí)現(xiàn)

    一文帶你了解Java選擇排序的原理與實(shí)現(xiàn)

    選擇排序:(Selection sort)是一種簡(jiǎn)單直觀的排序算法,也是一種不穩(wěn)定的排序方法。本文主要為大家介紹一下選擇排序的原理與實(shí)現(xiàn),希望對(duì)大家有所幫助
    2022-11-11
  • Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析

    Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析

    這篇文章主要介紹了Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡(jiǎn)單使用方法解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Mybatis常見(jiàn)注解有哪些(總結(jié))

    Mybatis常見(jiàn)注解有哪些(總結(jié))

    這篇文章主要介紹了Mybatis常見(jiàn)注解有哪些(總結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 教你怎么用Java完成人民幣大寫(xiě)轉(zhuǎn)化

    教你怎么用Java完成人民幣大寫(xiě)轉(zhuǎn)化

    這篇文章主要介紹了教你怎么用Java完成人民幣大寫(xiě)轉(zhuǎn)化,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論

屯昌县| 睢宁县| 宾阳县| 天祝| 汝州市| 永靖县| 桦甸市| 富民县| 榆中县| 商都县| 建瓯市| 上高县| 青岛市| 武宁县| 梁山县| 封丘县| 偃师市| 乳山市| 青海省| 南充市| 麻城市| 长寿区| 绍兴县| 定襄县| 蓝山县| 大丰市| 文安县| 临漳县| 海晏县| 依安县| 伊宁市| 重庆市| 上蔡县| 大宁县| 青岛市| 岑溪市| 高青县| 炎陵县| 大洼县| 若尔盖县| 达拉特旗|