91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-04 23:34:03 來源:腳本之家 閱讀:233 作者:fu1990@126 欄目:編程語言

實例如下所示:

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

這樣就Ok了,可以進行檢測

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();
  }
}

兩種檢測方法都可以。

以上這篇基于自定義BufferedReader中的read和readLine方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德江县| 即墨市| 塔河县| 元阳县| 庆元县| 高淳县| 浦东新区| 鸡东县| 田东县| 从化市| 庆元县| 公主岭市| 普定县| 淄博市| 镇坪县| 北宁市| 孝昌县| 绵竹市| 昂仁县| 镇沅| 信丰县| 汝城县| 郴州市| 枞阳县| 邓州市| 青田县| 文登市| 阜城县| 定结县| 连州市| 农安县| 嘉荫县| 古蔺县| 汽车| 普安县| 长泰县| 大城县| 平顶山市| 抚顺市| 吉隆县| 西乡县|