예는 다음과 같습니다.
패키지 day0208; import java.io.filereader; import java.io.ioexception; /** 버퍼드 리드 버퍼 버퍼 기능을 구현하기위한 맞춤형 읽기 버퍼* 분석 :* 버퍼는 배열을 캡슐화하고 배열에 액세스 할 수있는 더 많은 방법을 제공하는 것입니다.* 이러한 방법은 궁극적으로 배열의 각도 마크* 버퍼링 원리를 조작합니다. 소스의 데이터가 추출되면 -1을 최종 표시로 사용하십시오. */public class mybufferReader {private filereader r; MyBuffErreader (Filereader r) {this.r = r; } // 배열을 버퍼 개인 char [] buf = new char [1024]로 정의합니다. //이 배열의 요소를 작동하기위한 포인터를 정의합니다. 마지막 요소가 작동되면 포인터는 개인 int pos = 0으로 재설정해야합니다. // 버퍼에 데이터 수를 기록하기 위해 카운터를 정의합니다. 데이터가 0으로 감소되면 소스와 버퍼로 계속 데이터를 얻습니다. 개인 int count = 0; public int myread ()는 ioexception {// 사용자 정의 읽기 메소드 if (count == 0) {// 버퍼에 데이터가 없으면 소스에서 버퍼 count = r.read (buf)까지의 데이터 배치를 가져옵니다. pos = 0; } if (count <0) {return -1; } char ch = buf [pos ++]; // 한 번에 버퍼에서 하나의 문자를 얻습니다.; ch; } public string myreadline ()가 IoException을 던지려면 {// custom readline이 법률을 위반합니다. stringBuilder sb = new StringBuilder (); int ch = 0; while ((ch = myread ())! = -1) {// 데이터가있는 한 (ch == '/n') // java 줄이 끊어지고 읽기를 중지하고 읽기 데이터 출력을 반환하여 sb.toString (); (ch == '/r') 계속 된 경우; // 창문 아래의 신약을 읽거나 줄을 읽지 말고 다음 문자를 계속 읽으십시오. SB.Append ((char) ch); // 정상적인 상황에서 계속 읽으십시오} if (sb.length ()! = 0) // 문서에 문자가있는 경우 sb.tostring ()을 반환하십시오. return null; // 빈 문서 인 경우 빈 문서를 반환합니다} public void myclose ()가 ioexception {r.close (); // flow resources}} 던지기이것은 괜찮을 것이며 테스트를 수행 할 수 있습니다
패키지 day0208; import java.io.filereader; import java.io.ioexception; public class mydemo {public static void main (String [] args)은 ioexception {filereader fw = new Filereader ( "c : //demo2.txt"); MyBuffErreader br = 새로운 MyBuffErreader (FW); 문자열 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 (); }}두 탐지 방법 모두 괜찮습니다.
위의 기사는 Custom BufferedReader의 읽기 및 읽기 라인 메소드를 기반으로합니다. 이것은 내가 당신과 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.