Buffer (tampon)
1. La mémoire tampon (Buffer): un ensemble de données de base pour un type particulier de récipient.
Java.nio défini par le paquet, tous les tampons sont tampon sous - classe de la classe abstraite.
2. Java NIO tampon est principalement pour interagir avec le canal NIO, les données sont lues dans la mémoire tampon des canaux de la mémoire tampon de canal d'écriture
3. Tampon comme un tableau, vous pouvez économiser plus que le même type de données.
Les différents types de données (booléen non incluses), les sous-classes suivants: tampon utilisé
① ByteBuffer
② CharBuffer
③ ShortBuffer
④ IntBuffer
⑤ LongBuffer
⑥ FloatBuffer
⑦ DoubleBuffer
Ils sont utilisés ci-dessus méthode de classe de gestion mémoire tampon des données similaires,
Il suffit de taper leur gestion des données est différente. objets tampons sont acquises par un procédé comme suit:
XxxBuffer statique l'allocation (capacité d'int): créer une capacité cible de la capacité de XxxBuffer
4.Buffer méthode courante
tampon essai
Paquet de pénalité pour com.aff.nio; importation java.nio.ByteBuffer; importation org.junit.Test; / * * Buffer (tampon): responsable du stockage de données en Java NIO, le tampon est un tableau. Différents types de données pour stocker des données * en fonction des différents types de données ( à l' exception booléen), fournies en réponse types de tampons: * le ByteBuffer * IntBuffer * ShortBuffer * CharBuffer * LongBuffer * FloatBuffer * le DoubleBuffer * au-dessus de gestion de mémoire tampon presque identique , un tampon en obtenant la allouent () * * * deux noyau 2. le procédé de stockage de tampons de données * put (): les données stockées dans la mémoire tampon * get (): obtenir la zone de données lentement * * buffer les quatre principaux attributs: capacité *: capacité, représente la capacité maximale des données de stockage tampon, une déclaration ne peut pas être modifiée une fois limite *: limite, indique la taille de la mémoire tampon de données peut être utilisé (après les données limites ne peuvent être lus ou écrits) * Position: représente l'emplacement des données dans la mémoire tampon est en fonctionnement * * Marque: marque indiquant la position actuelle de la position d'enregistrement à () pour récupérer la position remise à zéro de la marque * 0 <= marque <position <= limite <= Capacité * * * / publique classe TestBuffer { @Test publique vide test1 () { chaîne STR = "abcdl" ; // 1. attribué une taille de mémoire tampon spécifiée la ByteBuffer buf = ByteBuffer.allocate (1024 ); System.out.println ( « -------- la allouent () --- ------- » ); System.out.println (buf.capacity ()); // 1024 System.out.println (buf.limit ()); // 1024 System.out.println (buf.position ()); //0 // méthode 2.Put pour les données stockées dans la mémoire tampon buf.put (str.getBytes ()); System.out.println ( « -------- PUT () -------- - " ); System.out.println (buf.capacity ()); // 1024 System.out.println (buf.limit ()); // 1024 System.out.println (buf.position ()); // 5 // commutateur de mode de lecture buf.flip (); System.out.println ( "mode lecture flip -------- ----------" ); le système. out.println (buf.capacity ()); // 1024 System.out.println (buf.limit ()); // . 5 System.out.println (buf.position ());// 0; // () de lecture de données dans la mémoire tampon avec l'EEG octet [] = DST nouveau nouvel octet ; [de buf.limit ()] buf.get (DST); System.out.println ( new new String (DST , 0 ;, que dst.length)) System.out.println ( "GET après -------- () ----------" ); System.out.println (buf.capacity ()); // 1024 System.out.println (buf.limit ()); // . 5 System.out.println (buf.position ()); // . 5; // lecture répétée rewind () buf. rewind (); System.out.println ( "-------- rewind () ----------"); System.out.println (buf.capacity ()); // 1024 System.out.println (buf.limit ()); // . 5 System.out.println (buf.position ()); // 0 // Clear () effacer la mémoire tampon, mais les données de tampon existe toujours, mais dans un état oublié } }