日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java readline 实现_基于自定义BufferedReader中的read和readLine方法

發布時間:2024/10/8 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java readline 实现_基于自定义BufferedReader中的read和readLine方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實例如下所示:

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方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java readline 实现_基于自定义BufferedReader中的read和readLine方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。