Los ejemplos son los siguientes:
Paquete Día0208; import java.io.filreader; import java.io.ioException; /* * Custom read buffer to implement the BufferedReader function* Analysis: * Buffer is to encapsulate an array and provide more methods to access the array* In fact, these methods ultimately operate the angle mark of the array* Principle of buffering: * In fact, it is to obtain a batch of data from the source and load it into the buffer, and then extract data from the buffer* After this collection, continue to extract a batch of data from the source to the buffer* When Se extraen los datos en la fuente, use -1 como la marca final. */clase pública myBufferReader {private FileReader r; MyBufferReader (FileReader R) {this.r = r; } // Definir una matriz como un búfer privado char [] buf = nuevo char [1024]; // Defina un puntero para operar los elementos de esta matriz. Cuando se opera el último elemento, el puntero debe restablecerse a cero private int pos = 0; // Defina un contador para registrar el número de datos en el búfer. Cuando los datos se reducen a 0, continúe obteniendo datos de la fuente y en el búfer. private int count = 0; public int myRead () lanza IOException {// Método de lectura personalizado if (count == 0) {// Si no hay datos en el búfer, obtenga un lote de datos de la fuente al count = r.read (buf); pos = 0; } if (count <0) {return -1; } char ch = buf [pos ++]; // Obtener un carácter del búfer en un recuento de tiempo--; regresar ch; } public String myReadline () lanza ioexception {// personalizado readline viola la ley stringBuilder sb = new StringBuilder (); int ch = 0; while ((ch = myRead ())! =-1) {// Mientras haya datos, lea si (ch == '/n') // Java Line Breaks, deje de leer y devuelve la salida de datos de lectura para devolver sb.ToString (); if (ch == '/r') continúa; // la nueva línea debajo de la ventana, no lea o se rompa en línea, continúe leyendo los siguientes caracteres sb.append ((char) ch); // En circunstancias normales, siga leyendo} if (sb.length ()! = 0) // Si hay caracteres en el documento, return sb.ToString (); return null; // Si es un documento vacío, return vacía} public void myClose () lanza ioexception {r.close (); // recursos de flujo cerrado}}Esto estará bien y puedes realizar pruebas
Paquete Día0208; import java.io.filreader; import java.io.ioException; public class myDemo {public static void main (string [] args) lanza ioexception {filereader fw = new FileReader ("c: //demo2.txt"); MyBufferReader BR = nuevo myBufferReader (FW); Cadena 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 (); }}Ambos métodos de detección están bien.
El artículo anterior se basa en el método Read and Readline en el BufferedReader personalizado. Este es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.