Le but d'établir un tampon est d'augmenter les performances de transmission et de nous faire transmettre des données plus rapidement.
Le tampon est en fait très simple. Il résume un tableau en interne et utilise un tableau pour stocker des données pour fournir certaines méthodes pour accéder au tableau.
Le fonctionnement de ces méthodes consiste à des pointeurs vers le tableau (marqueurs d'angle).
Le principe du tampon: obtenez un lot de données de la source au tampon, puis retirez-le un par un dans le tampon et utilisez -1 comme point d'extrémité.
Dans le BufferedReader, nous avons lus () et readLine () pour lire les données.
read () a des paramètres char [], cbuf, int off, int len. Sa valeur de retour est -1
La méthode readLine () consiste à prendre l'intérieur de la ligne par ligne comme un conteneur de chaîne StringBuffder dont la valeur de retour est nul;
Tout d'abord, définissez une classe pour définir deux méthodes de lecture de données dans la classe MyReader () et MyReadline ();
classe publique MyBufferedReader {private fileReader fr; Char privé [] buff = nouveau char [1024]; privé int zz = 0; INT privé Count = 0; MyBufferedReader (FileReader FR) {this.fr = fr; } public int myRead () lève ioException {if (count == 0) {count = fr.read (buff); zz = 0; } if (count <0) return -1; char ch = buff [zz ++]; compter--; retour ch; } public String myReadline () lève ioException {StringBuilder stb = new StringBuilder (); int ch = 0; while ((ch = myRead ())! = - 1) {if (ch == '/ r') continuer; if (ch == '/ n') return stb.toString (); STB.APPEND ((char) ch); } if (stb.length ()! = 0) return stb.toString (); retourner null; } public void myClose () lève ioException {fr.close (); }}Dans ce document, je définis un pointeur ZZ et un compteur de comptoir tampon pour enregistrer les modifications des données de lecture dans le tampon
Lorsque le nombre == 0, lisez les données dans le tampon ZZ 0. Lisez le premier numéro
Lorsque les données sont inférieures à 0, elle renvoie -1 après la lecture.
Créez un conteneur de chaîne StringBuilder dans myReadline () pour stocker les données. Lorsque STB == / N, une ligne est lue et sa valeur de retour est nul;
L'exemple ci-dessus de BufferedReader personnalisé 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.