您好,登錄后才能下訂單哦!
這篇文章主要介紹自定義BufferedReader的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
緩沖區的建立目的就是增加傳輸性能,使我們傳輸數據更加快速
緩沖區的內部其實很簡單 就是在內部封裝了一個數組 用數組來存儲數據 對外提供一些方法對數組進行訪問
其中這些方法的操作就是對數組的指針(角標)。
緩沖區的原理:從源中獲取一批數據到緩沖區,再從緩沖區中一個一個取出 取完后用-1作為結束標記
在BufferedReader中我們讀取數據方法有read() ,readLine()
read() 其參數為char[],cbuf,int off,int len。其返回值為-1
readLine()方法是一行一行的取 其內部就像是一個字符串容器StringBuffder 其返回值為null;
首先定義一個類 在類中定義兩個讀取數據的方法 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 和一個緩沖區計數器count來記錄緩沖區內讀取數據的變化
當count==0時 就往緩沖區內讀入數據 zz為0 從第一個數開始讀
小于0時數據讀取完畢 返回-1
在MyReadLine()中 創建一個字符串容器StringBuilder 來存儲數據黨stb==\n時 一行讀取完畢其返回值為null;
以上是“自定義BufferedReader的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。