Les exemples sont les suivants:
Package Day0208; import java.io.fileReader; import java.io.ioException; / * * Tampon de lecture personnalisé pour implémenter la fonction BufferedReader * Analyse: * Le tampon doit encapsuler un tableau et fournir plus de méthodes pour accéder au tableau * En fait, ces méthodes exploitent finalement la marque d'angle du tableau * Principe de mémoire tampon * Lorsque les données de la source sont extraites, utilisez -1 comme marque d'extrémité. * / public class MyBufferReader {private fileReader r; MyBufferReader (FileReader r) {this.r = r; } // Définir un tableau comme un tampon privé char [] buf = new char [1024]; // Définissez un pointeur pour faire fonctionner les éléments de ce tableau. Lorsque le dernier élément est opéré, le pointeur doit se réinitialiser à zéro privé int pos = 0; // Définissez un compteur pour enregistrer le nombre de données dans le tampon. Lorsque les données sont réduites à 0, continuez à obtenir des données à partir de la source et dans le tampon. INT privé Count = 0; public int myRead () lève ioException {// Méthode de lecture personnalisée if (count == 0) {// S'il n'y a pas de données dans le tampon, obtenez un lot de données de la source au tampon Count = R.Read (buf); pos = 0; } if (count <0) {return -1; } char ch = buf [pos ++]; // obtenir un caractère du tampon à un décompte de temps--; retour ch; } public String myReadline () lève ioException {// Leadline personnalisée viole la loi StringBuilder sb = new StringBuilder (); int ch = 0; while ((ch = myRead ())! = - 1) {// Tant qu'il y a des données, lisez si (ch == '/ n') // la ligne Java se casse, arrête de lire et renvoie la sortie de données de lecture pour renvoyer sb.toString (); si (ch == '/ r') continue; // la nouvelle ligne sous la fenêtre, ne lisez pas ou ne lisez pas la pause, continuez à lire les caractères suivants sb.append ((char) ch); // dans des circonstances normales, continuez à lire} if (sb.length ()! = 0) // s'il y a des caractères dans le document, retourne sb.toString (); retourner null; // s'il s'agit d'un document vide, retournez vide} public void myClose () lève ioException {r.close (); // Fermer les ressources de flux}}Ce sera OK, et vous pouvez effectuer des tests
Package Day0208; import java.io.fileReader; import java.io.ioException; classe publique MyDemo {public static void main (String [] args) lève ioException {fileReader fw = new FileReader ("c: //demo2.txt"); MyBufferReader br = new MyBufferReader (FW); Chaîne 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 (); }}Les deux méthodes de détection sont ok.
L'article ci-dessus est basé sur la méthode de lecture et de lecture dans le Custom BufferedReader. C'est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.