<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FFile%2FCharBuffer</id>
		<title>Java Tutorial/File/CharBuffer - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FFile%2FCharBuffer"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/CharBuffer&amp;action=history"/>
		<updated>2026-04-10T12:46:16Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/File/CharBuffer&amp;diff=5380&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/CharBuffer&amp;diff=5380&amp;oldid=prev"/>
				<updated>2010-06-01T05:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:20, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/File/CharBuffer&amp;diff=5379&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/File/CharBuffer&amp;diff=5379&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Buffer Equality ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    CharBuffer cb1 = CharBuffer.allocate(5), cb2 = CharBuffer.allocate(5);&lt;br /&gt;
    cb1.put(&amp;quot;B&amp;quot;).put(&amp;quot;u&amp;quot;).put(&amp;quot;f&amp;quot;).put(&amp;quot;f&amp;quot;).put(&amp;quot;A&amp;quot;);&lt;br /&gt;
    cb2.put(&amp;quot;B&amp;quot;).put(&amp;quot;u&amp;quot;).put(&amp;quot;f&amp;quot;).put(&amp;quot;f&amp;quot;).put(&amp;quot;B&amp;quot;);&lt;br /&gt;
    cb1.rewind();&lt;br /&gt;
    cb2.rewind();&lt;br /&gt;
    System.out.println(cb1.limit(4).equals(cb2.limit(4)));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Buffer slice ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer buffer = CharBuffer.allocate(8);&lt;br /&gt;
    buffer.position(3).limit(5);&lt;br /&gt;
    CharBuffer sliceBuffer = buffer.slice();&lt;br /&gt;
    println(buffer);&lt;br /&gt;
    println(sliceBuffer);&lt;br /&gt;
    char[] myBuffer = new char[100];&lt;br /&gt;
    CharBuffer cb = CharBuffer.wrap(myBuffer);&lt;br /&gt;
    cb.position(12).limit(21);&lt;br /&gt;
    CharBuffer sliced = cb.slice();&lt;br /&gt;
    println(cb);&lt;br /&gt;
    println(sliced);&lt;br /&gt;
  }&lt;br /&gt;
  private static void println(CharBuffer cb) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + cb.position() + &amp;quot;, limit=&amp;quot; + cb.limit() + &amp;quot;, capacity=&amp;quot;&lt;br /&gt;
        + cb.capacity() + &amp;quot;, arrayOffset=&amp;quot; + cb.arrayOffset());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;pos=3, limit=5, capacity=8, arrayOffset=0&lt;br /&gt;
pos=0, limit=2, capacity=2, arrayOffset=3&lt;br /&gt;
pos=12, limit=21, capacity=100, arrayOffset=0&lt;br /&gt;
pos=0, limit=9, capacity=9, arrayOffset=12&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  CharBuffer warps a ByteBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String argv[]) {&lt;br /&gt;
    ByteBuffer bb = ByteBuffer.allocate(100);&lt;br /&gt;
    bb.mark();&lt;br /&gt;
    bb.position(5);&lt;br /&gt;
    bb.reset();&lt;br /&gt;
    bb.mark().position(5).reset();&lt;br /&gt;
    char[] myBuffer = new char[100];&lt;br /&gt;
    CharBuffer cb = CharBuffer.wrap(myBuffer);&lt;br /&gt;
    cb.position(12).limit(21);&lt;br /&gt;
    CharBuffer sliced = cb.slice();&lt;br /&gt;
    System.out&lt;br /&gt;
        .println(&amp;quot;Sliced: offset=&amp;quot; + sliced.arrayOffset() + &amp;quot;, capacity=&amp;quot; + sliced.capacity());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Sliced: offset=12, capacity=9&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Convert ByteBuffer to a CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    ByteBuffer bb = ByteBuffer.wrap(new byte[] { 0, 0, 0, 0, 0, 0, 0, &amp;quot;a&amp;quot; });&lt;br /&gt;
    bb.rewind();&lt;br /&gt;
    CharBuffer cb = ((ByteBuffer) bb.rewind()).asCharBuffer();&lt;br /&gt;
    System.out.println(&amp;quot;Char Buffer&amp;quot;);&lt;br /&gt;
    while (cb.hasRemaining())&lt;br /&gt;
      System.out.println(cb.position() + &amp;quot; -&amp;gt; &amp;quot; + cb.get());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Convert ByteBuffer to CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.Buffer;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.ByteOrder;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
/**&lt;br /&gt;
 * Test asCharBuffer view.&lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    ByteBuffer byteBuffer = ByteBuffer.allocate(7).order(ByteOrder.BIG_ENDIAN);&lt;br /&gt;
    CharBuffer charBuffer = byteBuffer.asCharBuffer();&lt;br /&gt;
    byteBuffer.put(0, (byte) 0);&lt;br /&gt;
    byteBuffer.put(1, (byte) &amp;quot;H&amp;quot;);&lt;br /&gt;
    byteBuffer.put(2, (byte) 0);&lt;br /&gt;
    byteBuffer.put(3, (byte) &amp;quot;i&amp;quot;);&lt;br /&gt;
    byteBuffer.put(4, (byte) 0);&lt;br /&gt;
    byteBuffer.put(5, (byte) &amp;quot;!&amp;quot;);&lt;br /&gt;
    byteBuffer.put(6, (byte) 0);&lt;br /&gt;
    println(byteBuffer);&lt;br /&gt;
    println(charBuffer);&lt;br /&gt;
    // now slice it differently&lt;br /&gt;
    byteBuffer.position(4);&lt;br /&gt;
    charBuffer = byteBuffer.asCharBuffer();&lt;br /&gt;
    println(byteBuffer);&lt;br /&gt;
    println(charBuffer);&lt;br /&gt;
  }&lt;br /&gt;
  // Print info about a buffer&lt;br /&gt;
  private static void println(Buffer buffer) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + buffer.position() + &amp;quot;, limit=&amp;quot; + buffer.limit() + &amp;quot;, capacity=&amp;quot;&lt;br /&gt;
        + buffer.capacity() + &amp;quot;: &amp;quot;&amp;quot; + buffer.toString() + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;pos=0, limit=7, capacity=7: &amp;quot;java.nio.HeapByteBuffer[pos=0 lim=7 cap=7]&amp;quot;&lt;br /&gt;
pos=0, limit=3, capacity=3: &amp;quot;Hi!&amp;quot;&lt;br /&gt;
pos=4, limit=7, capacity=7: &amp;quot;java.nio.HeapByteBuffer[pos=4 lim=7 cap=7]&amp;quot;&lt;br /&gt;
pos=0, limit=1, capacity=1: &amp;quot;!&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a CharBuffer and put in some string ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer cb = CharBuffer.allocate(100);&lt;br /&gt;
    cb.put(&amp;quot;This is a test String&amp;quot;);&lt;br /&gt;
    cb.flip();&lt;br /&gt;
    // This throws an IllegalArgumentException&lt;br /&gt;
    cb.put(cb);&lt;br /&gt;
    System.out.println(cb);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Fill String to CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
/**&lt;br /&gt;
 * Buffer fill/drain example. This code uses the simplest means of filling and&lt;br /&gt;
 * draining a buffer: one element at a time.&lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer buffer = CharBuffer.allocate(100);&lt;br /&gt;
    String string = &amp;quot;asdf&amp;quot;;&lt;br /&gt;
    for (int i = 0; i &amp;lt; string.length(); i++) {&lt;br /&gt;
      buffer.put(string.charAt(i));&lt;br /&gt;
    }&lt;br /&gt;
    buffer.flip();&lt;br /&gt;
    drainBuffer(buffer);&lt;br /&gt;
    buffer.clear();&lt;br /&gt;
  }&lt;br /&gt;
  private static void drainBuffer(CharBuffer buffer) {&lt;br /&gt;
    while (buffer.hasRemaining()) {&lt;br /&gt;
      System.out.print(buffer.get());&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Flip a CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    char[] chars = new char[60];&lt;br /&gt;
    CharBuffer cb = CharBuffer.wrap(chars, 12, 42);&lt;br /&gt;
    println(cb);&lt;br /&gt;
    cb.put(&amp;quot;This is a test String&amp;quot;);&lt;br /&gt;
    cb.flip();&lt;br /&gt;
    println(cb);&lt;br /&gt;
    cb.clear();&lt;br /&gt;
    cb.put(&amp;quot;Foobar&amp;quot;);&lt;br /&gt;
    println(cb);&lt;br /&gt;
    for (int i = 0; i &amp;lt; 20; i++) {&lt;br /&gt;
      System.out.println(&amp;quot;[&amp;quot; + i + &amp;quot;] = &amp;quot; + chars[i]);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void println(CharBuffer cb) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + cb.position() + &amp;quot;, limit=&amp;quot; + cb.limit() + &amp;quot;, capacity=&amp;quot;&lt;br /&gt;
        + cb.capacity() + &amp;quot;, arrayOffset=&amp;quot; + cb.arrayOffset());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;pos=12, limit=54, capacity=60, arrayOffset=0&lt;br /&gt;
pos=0, limit=33, capacity=60, arrayOffset=0&lt;br /&gt;
pos=6, limit=60, capacity=60, arrayOffset=0&lt;br /&gt;
[0] = F&lt;br /&gt;
[1] = o&lt;br /&gt;
[2] = o&lt;br /&gt;
[3] = b&lt;br /&gt;
[4] = a&lt;br /&gt;
[5] = r&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Get array out of CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer cb = CharBuffer.allocate(100);&lt;br /&gt;
    cb.put(&amp;quot;This is a test String&amp;quot;);&lt;br /&gt;
    cb.flip();&lt;br /&gt;
    System.out.println(&amp;quot;hasArray() = &amp;quot; + cb.hasArray());&lt;br /&gt;
    char[] carray = cb.array();&lt;br /&gt;
    System.out.print(&amp;quot;array=&amp;quot;);&lt;br /&gt;
    for (int i = 0; i &amp;lt; carray.length; i++) {&lt;br /&gt;
      System.out.print(carray[i]);&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;&amp;quot;);&lt;br /&gt;
    System.out.flush();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;hasArray() = true&lt;br /&gt;
array=This is a test String&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Save and read text using FileChannel with CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.channels.FileChannel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileChannel fc = new FileOutputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    ByteBuffer buff = ByteBuffer.allocate(24); // More than needed&lt;br /&gt;
    buff.asCharBuffer().put(&amp;quot;Some text&amp;quot;);&lt;br /&gt;
    fc.write(buff);&lt;br /&gt;
    fc.close();&lt;br /&gt;
    fc = new FileInputStream(&amp;quot;data2.txt&amp;quot;).getChannel();&lt;br /&gt;
    buff.clear();&lt;br /&gt;
    fc.read(buff);&lt;br /&gt;
    buff.flip();&lt;br /&gt;
    System.out.println(buff.asCharBuffer());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*  */&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Some text&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Test buffer duplication ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
/**&lt;br /&gt;
 * Test buffer duplication.&lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer buffer = CharBuffer.wrap(&amp;quot;01234567&amp;quot;);&lt;br /&gt;
    buffer.position(3).limit(6).mark().position(5);&lt;br /&gt;
    CharBuffer dupeBuffer = buffer.duplicate();&lt;br /&gt;
    buffer.clear();&lt;br /&gt;
    println(buffer);&lt;br /&gt;
    println(dupeBuffer);&lt;br /&gt;
    dupeBuffer.reset();&lt;br /&gt;
    println(dupeBuffer);&lt;br /&gt;
    dupeBuffer.clear();&lt;br /&gt;
    println(dupeBuffer);&lt;br /&gt;
  }&lt;br /&gt;
  private static void println(CharBuffer cb) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + cb.position() + &amp;quot;, limit=&amp;quot; + cb.limit() + &amp;quot;, capacity=&amp;quot;&lt;br /&gt;
        + cb.capacity() + &amp;quot;: &amp;quot;&amp;quot; + cb + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;pos=0, limit=8, capacity=8: &amp;quot;01234567&amp;quot;&lt;br /&gt;
pos=5, limit=6, capacity=8: &amp;quot;5&amp;quot;&lt;br /&gt;
pos=3, limit=6, capacity=8: &amp;quot;345&amp;quot;&lt;br /&gt;
pos=0, limit=8, capacity=8: &amp;quot;01234567&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Test the effects of buffer flipping ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
/**&lt;br /&gt;
 * Test the effects of buffer flipping.&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer cb = CharBuffer.allocate(15);&lt;br /&gt;
    cb.put(&amp;quot;Hello World&amp;quot;);&lt;br /&gt;
    println(cb);&lt;br /&gt;
    cb.flip();&lt;br /&gt;
    println(cb);&lt;br /&gt;
    cb.flip();&lt;br /&gt;
    println(cb);&lt;br /&gt;
  }&lt;br /&gt;
  private static void println(CharBuffer cb) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + cb.position() + &amp;quot;, limit=&amp;quot; + cb.limit() + &amp;quot;: &amp;quot;&amp;quot; + cb + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static void symmetricScramble(CharBuffer buffer) {&lt;br /&gt;
    while (buffer.hasRemaining()) {&lt;br /&gt;
      buffer.mark();&lt;br /&gt;
      char c1 = buffer.get();&lt;br /&gt;
      char c2 = buffer.get();&lt;br /&gt;
      buffer.reset();&lt;br /&gt;
      buffer.put(c2).put(c1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    char[] data = &amp;quot;UsingBuffers&amp;quot;.toCharArray();&lt;br /&gt;
    ByteBuffer bb = ByteBuffer.allocate(data.length * 2);&lt;br /&gt;
    CharBuffer cb = bb.asCharBuffer();&lt;br /&gt;
    cb.put(data);&lt;br /&gt;
    System.out.println(cb.rewind());&lt;br /&gt;
    symmetricScramble(cb);&lt;br /&gt;
    System.out.println(cb.rewind());&lt;br /&gt;
    symmetricScramble(cb);&lt;br /&gt;
    System.out.println(cb.rewind());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;UsingBuffers&lt;br /&gt;
sUniBgfuefsr&lt;br /&gt;
UsingBuffers&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use while loop to read a CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.ByteBuffer;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    ByteBuffer bb = ByteBuffer.wrap(new byte[] { 0, 0, 0, 0, 0, 0, 0, &amp;quot;a&amp;quot; });&lt;br /&gt;
    bb.rewind();&lt;br /&gt;
    CharBuffer cb = ((ByteBuffer) bb.rewind()).asCharBuffer();&lt;br /&gt;
    System.out.println(&amp;quot;Char Buffer&amp;quot;);&lt;br /&gt;
    while (cb.hasRemaining())&lt;br /&gt;
      System.out.println(cb.position() + &amp;quot; -&amp;gt; &amp;quot; + cb.get());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Wrap a char array to a CharBuffer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.nio.CharBuffer;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    CharBuffer buffer = CharBuffer.allocate(8);&lt;br /&gt;
    buffer.position(3).limit(5);&lt;br /&gt;
    CharBuffer sliceBuffer = buffer.slice();&lt;br /&gt;
    println(buffer);&lt;br /&gt;
    println(sliceBuffer);&lt;br /&gt;
    char[] myBuffer = new char[100];&lt;br /&gt;
    CharBuffer cb = CharBuffer.wrap(myBuffer);&lt;br /&gt;
    cb.position(12).limit(21);&lt;br /&gt;
    CharBuffer sliced = cb.slice();&lt;br /&gt;
    println(cb);&lt;br /&gt;
    println(sliced);&lt;br /&gt;
  }&lt;br /&gt;
  private static void println(CharBuffer cb) {&lt;br /&gt;
    System.out.println(&amp;quot;pos=&amp;quot; + cb.position() + &amp;quot;, limit=&amp;quot; + cb.limit() + &amp;quot;, capacity=&amp;quot;&lt;br /&gt;
        + cb.capacity() + &amp;quot;, arrayOffset=&amp;quot; + cb.arrayOffset());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;pos=3, limit=5, capacity=8, arrayOffset=0&lt;br /&gt;
pos=0, limit=2, capacity=2, arrayOffset=3&lt;br /&gt;
pos=12, limit=21, capacity=100, arrayOffset=0&lt;br /&gt;
pos=0, limit=9, capacity=9, arrayOffset=12&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>