< prev index next >

src/java.base/share/classes/java/nio/X-Buffer.java.template

Print this page




  53  *   into an array; {#if[!byte]?and}</p></li>
  54  *
  55  *   <li><p> Relative {@link #put($type$[]) <i>bulk put</i>}
  56  *   methods that transfer contiguous sequences of $type$s from $a$
  57  *   $type$ array{#if[char]?, a string,} or some other $type$
  58  *   buffer into this buffer;{#if[!byte]? and} </p></li>
  59  *
  60 #if[byte]
  61  *
  62  *   <li><p> Absolute and relative {@link #getChar() <i>get</i>}
  63  *   and {@link #putChar(char) <i>put</i>} methods that read and
  64  *   write values of other primitive types, translating them to and from
  65  *   sequences of bytes in a particular byte order; </p></li>
  66  *
  67  *   <li><p> Methods for creating <i><a href="#views">view buffers</a></i>,
  68  *   which allow a byte buffer to be viewed as a buffer containing values of
  69  *   some other primitive type; and </p></li>
  70  *
  71 #end[byte]
  72  *
  73  *   <li><p> Methods for {@link #compact compacting}, {@link
  74  *   #duplicate duplicating}, and {@link #slice slicing}
  75  *   $a$ $type$ buffer.  </p></li>
  76  *
  77  * </ul>
  78  *
  79  * <p> $Type$ buffers can be created either by {@link #allocate
  80  * <i>allocation</i>}, which allocates space for the buffer's
  81  *
  82 #if[byte]
  83  *
  84  * content, or by {@link #wrap($type$[]) <i>wrapping</i>} an
  85  * existing $type$ array {#if[char]?or string} into a buffer.
  86  *
  87 #else[byte]
  88  *
  89  * content, by {@link #wrap($type$[]) <i>wrapping</i>} an existing
  90  * $type$ array {#if[char]?or string} into a buffer, or by creating a
  91  * <a href="ByteBuffer.html#views"><i>view</i></a> of an existing byte buffer.
  92  *
  93 #end[byte]
  94  *


 518      * buffer, and vice versa; the two buffers' position, limit, and mark
 519      * values will be independent.
 520      *
 521      * <p> The new buffer's position will be zero, its capacity and its limit
 522      * will be the number of $type$s remaining in this buffer, its mark will be
 523      * undefined, and its byte order will be
 524 #if[byte]
 525      * {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 526 #else[byte]
 527      * identical to that of this buffer.
 528 #end[byte]
 529      * The new buffer will be direct if, and only if, this buffer is direct, and
 530      * it will be read-only if, and only if, this buffer is read-only.  </p>
 531      *
 532      * @return  The new $type$ buffer
 533 #if[byte]
 534      *
 535      * @see #alignedSlice(int)
 536 #end[byte]
 537      */

 538     public abstract $Type$Buffer slice();
 539 
 540     /**
 541      * Creates a new $type$ buffer that shares this buffer's content.
 542      *
 543      * <p> The content of the new buffer will be that of this buffer.  Changes
 544      * to this buffer's content will be visible in the new buffer, and vice
 545      * versa; the two buffers' position, limit, and mark values will be
 546      * independent.
 547      *
 548      * <p> The new buffer's capacity, limit, position,
 549 #if[byte]
 550      * and mark values will be identical to those of this buffer, and its byte
 551      * order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 552 #else[byte]
 553      * mark values, and byte order will be identical to those of this buffer.
 554 #end[byte]
 555      * The new buffer will be direct if, and only if, this buffer is direct, and
 556      * it will be read-only if, and only if, this buffer is read-only.  </p>
 557      *
 558      * @return  The new $type$ buffer
 559      */

 560     public abstract $Type$Buffer duplicate();
 561 
 562     /**
 563      * Creates a new, read-only $type$ buffer that shares this buffer's
 564      * content.
 565      *
 566      * <p> The content of the new buffer will be that of this buffer.  Changes
 567      * to this buffer's content will be visible in the new buffer; the new
 568      * buffer itself, however, will be read-only and will not allow the shared
 569      * content to be modified.  The two buffers' position, limit, and mark
 570      * values will be independent.
 571      *
 572      * <p> The new buffer's capacity, limit, position,
 573 #if[byte]
 574      * and mark values will be identical to those of this buffer, and its byte
 575      * order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 576 #else[byte]
 577      * mark values, and byte order will be identical to those of this buffer.
 578 #end[byte]
 579      *




  53  *   into an array; {#if[!byte]?and}</p></li>
  54  *
  55  *   <li><p> Relative {@link #put($type$[]) <i>bulk put</i>}
  56  *   methods that transfer contiguous sequences of $type$s from $a$
  57  *   $type$ array{#if[char]?, a string,} or some other $type$
  58  *   buffer into this buffer;{#if[!byte]? and} </p></li>
  59  *
  60 #if[byte]
  61  *
  62  *   <li><p> Absolute and relative {@link #getChar() <i>get</i>}
  63  *   and {@link #putChar(char) <i>put</i>} methods that read and
  64  *   write values of other primitive types, translating them to and from
  65  *   sequences of bytes in a particular byte order; </p></li>
  66  *
  67  *   <li><p> Methods for creating <i><a href="#views">view buffers</a></i>,
  68  *   which allow a byte buffer to be viewed as a buffer containing values of
  69  *   some other primitive type; and </p></li>
  70  *
  71 #end[byte]
  72  *
  73  *   <li><p> A method for {@link #compact compacting}

  74  *   $a$ $type$ buffer.  </p></li>
  75  *
  76  * </ul>
  77  *
  78  * <p> $Type$ buffers can be created either by {@link #allocate
  79  * <i>allocation</i>}, which allocates space for the buffer's
  80  *
  81 #if[byte]
  82  *
  83  * content, or by {@link #wrap($type$[]) <i>wrapping</i>} an
  84  * existing $type$ array {#if[char]?or string} into a buffer.
  85  *
  86 #else[byte]
  87  *
  88  * content, by {@link #wrap($type$[]) <i>wrapping</i>} an existing
  89  * $type$ array {#if[char]?or string} into a buffer, or by creating a
  90  * <a href="ByteBuffer.html#views"><i>view</i></a> of an existing byte buffer.
  91  *
  92 #end[byte]
  93  *


 517      * buffer, and vice versa; the two buffers' position, limit, and mark
 518      * values will be independent.
 519      *
 520      * <p> The new buffer's position will be zero, its capacity and its limit
 521      * will be the number of $type$s remaining in this buffer, its mark will be
 522      * undefined, and its byte order will be
 523 #if[byte]
 524      * {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 525 #else[byte]
 526      * identical to that of this buffer.
 527 #end[byte]
 528      * The new buffer will be direct if, and only if, this buffer is direct, and
 529      * it will be read-only if, and only if, this buffer is read-only.  </p>
 530      *
 531      * @return  The new $type$ buffer
 532 #if[byte]
 533      *
 534      * @see #alignedSlice(int)
 535 #end[byte]
 536      */
 537     @Override
 538     public abstract $Type$Buffer slice();
 539 
 540     /**
 541      * Creates a new $type$ buffer that shares this buffer's content.
 542      *
 543      * <p> The content of the new buffer will be that of this buffer.  Changes
 544      * to this buffer's content will be visible in the new buffer, and vice
 545      * versa; the two buffers' position, limit, and mark values will be
 546      * independent.
 547      *
 548      * <p> The new buffer's capacity, limit, position,
 549 #if[byte]
 550      * and mark values will be identical to those of this buffer, and its byte
 551      * order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 552 #else[byte]
 553      * mark values, and byte order will be identical to those of this buffer.
 554 #end[byte]
 555      * The new buffer will be direct if, and only if, this buffer is direct, and
 556      * it will be read-only if, and only if, this buffer is read-only.  </p>
 557      *
 558      * @return  The new $type$ buffer
 559      */
 560     @Override
 561     public abstract $Type$Buffer duplicate();
 562 
 563     /**
 564      * Creates a new, read-only $type$ buffer that shares this buffer's
 565      * content.
 566      *
 567      * <p> The content of the new buffer will be that of this buffer.  Changes
 568      * to this buffer's content will be visible in the new buffer; the new
 569      * buffer itself, however, will be read-only and will not allow the shared
 570      * content to be modified.  The two buffers' position, limit, and mark
 571      * values will be independent.
 572      *
 573      * <p> The new buffer's capacity, limit, position,
 574 #if[byte]
 575      * and mark values will be identical to those of this buffer, and its byte
 576      * order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
 577 #else[byte]
 578      * mark values, and byte order will be identical to those of this buffer.
 579 #end[byte]
 580      *


< prev index next >