Exemplos são os seguintes:
pacote DIA0208; importar java.io.fileReader; importar 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 O buffer* Quando os dados da fonte são extraídos, use -1 como a marca final. */public class MyBufferReader {private FileReader r; MyBufferReader (fileReader r) {this.r = r; } // Defina uma matriz como um buffer privado char [] buf = novo char [1024]; // Defina um ponteiro para operar os elementos dessa matriz. Quando o último elemento é operado, o ponteiro deve ser redefinido para zero private int pos = 0; // Defina um contador para registrar o número de dados no buffer. Quando os dados forem reduzidos para 0, continue a obter dados da fonte e no buffer. private int conting = 0; public int myRead () lança IoException {// Método de leitura personalizado se (count == 0) {// Se não houver dados no buffer, obtenha um lote de dados da fonte para a contagem de buffer = R.read (BUF); pos = 0; } if (count <0) {return -1; } char ch = buf [pos ++]; // obtenha um caractere do buffer de cada vez contagem--; retornar ch; } public string myReadLine () lança IoException {// Readline personalizado viola o Law Stringbuilder sb = new StringBuilder (); int ch = 0; while ((CH = myRead ())! =-1) {// Enquanto houver dados, leia se (ch == '/n') // java quebra, pare de ler e retorne a saída de dados de leitura para retornar sb.toString (); se (ch == '/r') continuar; // a nova linha em janela, não leia ou quebrar a linha, continue lendo os seguintes caracteres sb.append ((char) ch); // em circunstâncias normais, continue lendo} if (sb.length ()! Retorne null; // Se for um documento vazio, retorne vazio} public void myClose () lança ioexception {r.close (); // Recursos de fluxo fechado}}Isso vai ficar bem, e você pode executar testes
pacote DIA0208; importar java.io.fileReader; importar java.io.ioException; public class MyDemo {public static void main (string [] args) lança ioexception {filereader fw = new fileReader ("c: //demo2.txt"); MyBufferReader Br = new MyBufferReader (FW); String line1 = null; while ((line1 = Br.myreadLine ())! = null) {System.out.println (Linha1); } // int num = 0; // while ((num = br.myread ())! =-1) {// System.out.print ((char) num); //} Br.myclose (); }}Ambos os métodos de detecção estão OK.
O artigo acima é baseado no método de leitura e readlina no atendimento de buffers personalizado. Este é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.